首页 > 解决方案 > 如何从 switch case 调用方法?

问题描述

我试图在我的工具中实现一个菜单。但我无法在 python 中实现 switch case。我知道python只有字典映射。如何在这些 switch 案例中调用参数化方法?例如,我有这个程序

def Choice(i): switcher = { 1: subdomain(host), 2: reverseLookup(host), 3: lambda: 'two' } func = switcher.get(i, lambda:'Invalid') print(func())

在这里,我无法执行参数化调用subdomain(host)。请帮忙。

标签: pythonpython-3.xswitch-statement

解决方案


我认为问题是因为在switcher创建字典时调用了前两个函数。您可以通过使所有值lambda函数定义如下所示来避免这种情况:

def choice(i):
    switcher = {
            1: lambda: subdomain(host),
            2: lambda: reverseLookup(host),
            3: lambda: 'two'
        }
    func = switcher.get(i, lambda: 'Invalid')
    print(func())

推荐阅读