我有一个定义了几个set
和get
方法的类:
class MyClass(object):
def __init__(self):
pass
def set_name(self, value):
self._name = value
def get_name(self):
return self._name
我希望这个类使用属性,但我不想改变它的代码(或添加任何东西)。所以我尝试继承如下:
class Child(MyClass):
name = property(get_name, set_name)
当我尝试导入Child
时,我得到一个NameError:'get_name'未定义。
我认为这是因为属性声明必须>> get
和set
方法之后?
无论如何都要在Child
??
答案 0 :(得分:2)
您可以在父类上引用方法:
class Child(MyClass):
name = property(MyClass.get_name, MyClass.set_name)
在类定义'body'中,getter和setter函数仍然是本地名称,因此您可以这样解决它们。但是在子类中它们不再是本地的,所以你需要从类中检索它们。