我有一个类,它定义了几个 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
中执行此操作??
最佳答案
可以引用父类的方法:
class Child(MyClass):
name = property(MyClass.get_name, MyClass.set_name)
在类定义“body”中,getter 和 setter 函数仍然是本地名称,因此您可以这样对它们进行寻址。但在子类中它们不再是本地的,因此您需要从类中检索它们。
关于python - 使用父类中的方法定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25200554/