【发布时间】:2020-01-17 15:48:46
【问题描述】:
如果我声明这些函数:
def f1(someval):
print(someval)
def f2(someval, someval2):
print(someval, someval2)
如果我有一本包含函数作为值的字典:
input_dict = {"func1": f1, "func2": f2}
我想检查用户的输入是否与字典“input_dict”中的键匹配:
shell_input = 'shell~: '
for key,val in input_dict:
if key == shell_input:
input_dict[val](params)
我如何检测每个被调用的函数有多少个函数参数并将值传递给它们,甚至可能(不声明全局变量)?
我试图避免在我的代码中使用链式 if、elif、else 逻辑,例如:
if shell_input == "func1":
f1(param)
elif shell_input == "func2":
f2(param1, param2)
#etc...
或者在检查输入时使用链式 if、elif、else 逻辑是否更有效?
【问题讨论】:
-
我不确定你的问题,问题是参数的数量,还是它们的性质,即使用哪个?
-
哪个使用效率更高
标签: python-3.x dictionary if-statement input