我正在尝试使用字典编写一个switch case,并从中调用所有函数。但是{key,value}
对都被打印出来了:
def addWord():
print "Add word"
def searchWord():
print "Search word"
def displayAll():
print "display all"
#Executing the choice
def switch_choice(choice):
switcher = {
1:addWord(),
2:searchWord(),
3:displayAll()
}.get(choice,"Invalid input")
#MAIN
print "Enter your choice"
print "1.Add new word"
print "2.Search for a word"
print "3.Display all words"
choice=input()
switch_choice(choice)
输出-
Enter your choice
1.Add new word
2.Search for a word
3.Display all words
1
Add word
Search word
display all
谁能告诉我原因吗。你知道吗
您没有存储函数。您正在存储函数调用的结果。不要调用函数对象,调用
dict.get()
调用的结果:在Python中,函数只是对象,
()
部分只是一段可以应用于任何表达式的语法;只要表达式生成可调用的东西(比如函数对象),Python就可以处理它。你知道吗注意,我给了
dict.get()
方法一个lambda
表达式作为默认值;如果choice
值不是字典中的键,您仍然需要返回一些可调用的内容。你知道吗相关问题 更多 >
编程相关推荐