我已经有了一个可行的解决方案,但在我看来,对于长脚本的一部分来说,这不是一个很好的解决方案。
我的脚本使用了几种相似的方法,但差异太大而无法组合。但是,我想根据给定的变量调用其中一种方法。
方法的名称是这样构建的:
def read_A():
#doing sth
def read_B():
#doing sth else
def read_C():
等等
现在我想以 pythonic 方式调用这些方法,当字母 ('A'
, 'B'
, 'C'
, ...) 作为变量给出。
非 pythonic 解决方案是:
if var == "A":
read_A()
if var == "B":
read_B() .....
我希望找到一个更像 pythonic 的解决方案,让我可以像这样简单地调用这些方法:
var = "A"
read_var() #This would call the method 'read_A()'
请注意,上面的代码只是我希望做的事情的一个形象,它不是一个工作示例!
最佳答案
我没有看到仅使用的问题
if var == 'A':
read_a()
但是如果你想让它更“pythonic”,你可以使用字典将你的变量映射到方法,并根据字典中存储的结果执行它:
def read_a():
print('Running method read_a')
def read_b():
print('Running method read_b')
switch = {'A': read_a, 'B': read_b}
case = 'A'
switch.get(case)()
>> 'Running method read_a'
case = 'B'
switch.get(case)()
>> 'Running method read_b'
关于python - 根据变量调用方法的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46648164/