我正在编写一个库的扩展,我想用基类中的函数指针字典注册我的新函数。我的理解是字典,因为它在一个类中的最高范围,是静态的,应该是可更新的。但是,当我尝试update()
使用扩展类中的新函数查找字典时,它告诉我它是未定义的。以下最小示例重现了该错误:
def somefunction1(v):
return v
def somefunction2(v):
return v
class SomeClass(object):
dictionary = {'a':somefunction1}
class SomeExtensionClass(SomeClass):
dictionary.update({'b':somefunction2})
运行它会出现以下错误
9
10 class SomeExtensionClass(SomeClass):
---> 11 dictionary.update({'b':somefunction2})
NameError: name 'dictionary' is not defined
由于我不能(合理地)修改原件SomeClass
,有什么办法可以解决这个问题吗?
SomeExtensionClass
编辑:期望的结果是dictionary={'a':somefunction1, 'b':somefunction2}