Python - 使用外部类中的方法定义在字典中声明方法名称

时间:2013-12-11 05:18:24

标签: python

from foo import fooClass

dict = {'a': method1, 'b': method2}

bar = fooClass()

method = dict['a']

bar.method()

我想定义一个带有方法引用的字典,但方法定义不在字典定义的范围内。

目前,我收到一个NameError:名称'method1'未定义。

为了澄清,我已经看到了定义函数的示例,然后使用函数名称的字典在同一范围内创建,但这不是我想要做的。

1 个答案:

答案 0 :(得分:3)

您需要将字典指向实际方法:

from foo import fooClass

dict = {'a': fooClass.method1, 'b': fooClass.method2}

由于该范围内未定义method1 ,因此您需要在fooClass类上引用该方法。


或者,如果您不想在代码中继续引用fooClass,则可以将方法存储为字符串并使用getattr()来执行此操作:

from foo import fooClass

dict = {'a': 'method1', 'b': 'method2'}

bar = fooClass()
method = getattr(bar.__class__, method = dict['a'])
bar.method()