Python - 运行具有相似但不同名称的外部方法的更好方法?

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

目前在我的项目中,我在一个方法中有一些类似这样的代码,其中 param1 和 param2 保证每次函数调用都相同:

def run_funct(self):

    if self.my_type == "a":
        a_funct(param1, param2)

    if self.my_type == "b":
        b_funct(param1, param2)

    if self.my_type == "c":
        c_funct(param1, param2)

Python 有没有办法让它更像?

def run_funct(self):

    {self.my_type}_funct(param1, param2)

我在网上做了一些研究,但我真的不知道这叫什么。这并不是真正的命令替换或变量替换,对吗?

python-3.x methods
1个回答
0
投票

假设

x_funct
是在模块范围内定义的,你可以这样做:

def run_funct(self):
    globals()[f'{self.my_type}_funct'](param1, param2)

但这太恶心了,也许重新考虑一下你的设计。

© www.soinside.com 2019 - 2024. All rights reserved.