Skip to main content
 首页 » 编程设计

python之根据变量调用方法的方法

2025年05月04日19softidea

我已经有了一个可行的解决方案,但在我看来,对于长脚本的一部分来说,这不是一个很好的解决方案。

我的脚本使用了几种相似的方法,但差异太大而无法组合。但是,我想根据给定的变量调用其中一种方法。

方法的名称是这样构建的:

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'