通过locals()从内部调用类方法

时间:2015-09-06 19:09:19

标签: python

我有一个包含许多方法的类,其名称遵循以下模式:

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后面时,如何从类中的方法中调用这些方法呢?

0 个答案:

没有答案