我有一些如下所示的代码:
class Action(object):
...
class SpecificAction1(Action):
...
class SpecificAction2(Action):
...
它们都在同一个文件中指定。在他们的规范之前,我想放一个看起来像这样的字典:
ACTIONS = {
"SpecificAction1": SpecificAction1,
"SpecificAction2": SpecificAction2
}
这个想法是我可以简单地从其他模块导入 ACTIONS 字典,并让这一个字典成为动作的一个规范字符串表示形式(它们通过网络和其他我需要标识符的地方发送)。
是否可以像做函数指针一样做这样的“类指针”?我的编辑抱怨在类定义之前声明字典之前未定义名称 - 这是真的吗?
另外,如果上述可能,我可以这样做来实例化一个类:ACTIONS['SpecificAction2']()
?