我正在尝试在Python中实现switch-case语句。我需要帮助,因为这在控制台上什么也没打印。我想用此开关触发一些功能。
def do_something():
print("do")
def take_something():
print("take")
switch = {
"do": do_something,
"take": take_something
}
def execute_command(command):
switch.get(command, lambda: print("Invalid command!"))
execute_command(input())
答案 0 :(得分:1)
您几乎是正确的。
def execute_command(command):
switch.get(command, lambda: print("Invalid command!"))() # maybe args
因为switch.get返回一个函数
或更复杂的方式使用globals()返回当前全局变量的字典:
def dojob():
print("do")
def takejob():
print("take")
def execute_command(command):
globals().get(command, lambda: print("Invalid command!"))()
execute_command(input())
然后输入dojob,takejob
答案 1 :(得分:1)
此行:switch.get(command, lambda: print("Invalid command!"))
正在检索该函数,但您并未对其执行任何操作。您必须像这样添加()
来调用函数:
switch.get(command, lambda: print("Invalid command!"))()