我有一个包含许多方法的类,其名称遵循以下模式:
convert_to_A(self)
,convert_to_B(self)
,convert_to_C(self)
,...
用户将为我提供一个要调用的函数列表。说一些像 -
user_options = ["A", "G", "K", ...]
我偶然发现了令人敬畏的globals()
,locals()
函数,我认为这些函数将解决我的问题。因此,函数内部通过locals()
调用它们的方法应该正常吗? -
def call_user_options(self):
for step in self.user_options:
locals()["convert_to_" + step]()
但它没有。也试过打电话给locals()["self.convert_to_" + step]()
但是没有用。打印locals()
和globals()
会显示此内容 -
locals = {'self': <__main__.test instance at 0x105466200>}
globals = {'__builtins__': <module '__builtin__' (built-in)>, '__file__': 'globals_locals.py', '__package__': None, 'test': <class __main__.test at 0x105429ae0>, '__name__': '__main__', 'main': <function main at 0x10544bed8>, '__doc__': None}
那么当它们隐藏在self
后面时,如何从类中的方法中调用这些方法呢?