目前在我的项目中,我在一个方法中有一些类似这样的代码,其中 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)
我在网上做了一些研究,但我真的不知道这叫什么。这并不是真正的命令替换或变量替换,对吗?
假设
x_funct
是在模块范围内定义的,你可以这样做:
def run_funct(self):
globals()[f'{self.my_type}_funct'](param1, param2)
但这太恶心了,也许重新考虑一下你的设计。