如何在python中实现Switch-Case?

时间:2019-07-08 23:14:32

标签: python python-3.x

我正在尝试在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())

2 个答案:

答案 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!"))()