switch语句可以包含带参数的函数吗?

问题描述 投票:-1回答:1

我有一个我正在处理的脚本,它具有带功能的开关。

我希望在keyCodes上创建案例并使用参数执行正确的方法。密钥代码可以是'C'或'P',否则'无效'将是提示。

class Switcher(object):
def indirect(self, code):
    method_name = 'method_' + str(code)
    method = getattr(self,method_name, lambda: 'Invalid')
    return method()

def method_C(self,title):
    return 'method_C'  + title


def method_P(self,title):
    return 'method_P'  + title

我的主要()如下:

s = Switcher()
func = s.indirect('C')
a = func("I'm at Method_C")
print(a)

我试图将生成的方法传递给参数时遇到异常

TypeError: 'str' object is not callable

与代码行相关:a = func(“我在Method_C”)

有任何想法吗 ?

python-3.x function switch-statement
1个回答
0
投票

我想调用基于1个关键参数的方法,并在调用结果方法之前将参数传递给它。


更清楚我希望:

1. send key = 'C'.
2  the switch will select method_C as result.
3. to call the method_C with string argument (without knowing which method was 
   resulted).
© www.soinside.com 2019 - 2024. All rights reserved.