【发布时间】:2013-12-21 07:48:38
【问题描述】:
我在 Python 中有以下类,我试图用它来通过具有可用函数指针的字典调用一组它自己的方法:
class Test():
functions = {
'operation_a' : Test.function_a;
'operation_b' : Test.function_b;
}
def run_operations(operation, *args, **kwargs):
try:
functions[str(operation)](self, args, kwargs)
except KeyError:
// some log ...
def function_a(self, *args, **kwargs):
print A
def function_b(self, *args, **kwargs):
print B
第一种方法似乎不正确,因为 Python 解释器找不到类“Test”(NameError:“Test”未定义)。我找不到方法(导入包、包和模块,from package.module import *...等)因此,我有 3 个解决方案可以解决这个问题:
- 在类构造函数中定义操作字典 (
__init__()), - 将可调用函数移至不同的类(在我的情况下,该类位于不同的模块中,我没有尝试使用同一模块中的类),
- 在同一个类中定义函数为@staticmethod
但是,我仍然不知道为什么最初的方法似乎不正确。因此,如何在实例化之前引用同一类中的函数?
【问题讨论】:
标签: python function class function-pointers