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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了switch语句可以包含带参数的函数吗?相关的知识,希望对你有一定的参考价值。

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

我希望在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”)

有任何想法吗 ?

答案

我想调用基于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).

以上是关于switch语句可以包含带参数的函数吗?的主要内容,如果未能解决你的问题,请参考以下文章

js中switch语句中case值可不可以表示一个范围

switch语句(上)(转载)

在 if 语句中使用 switch case

JavaScript对于switch语句中的case后键入值的带不带引号

如何使用 PHP switch 语句检查字符串是不是包含单词(但也可以包含其他单词)?

C语言带参数的宏定义后面的字符串可以使复合语句或者干脆一个函数算法么?如下题该怎么写?