我正在使用 python-3.6.1
我测试了继承中的属性,但结果发现 setter 不起作用。
class MyClass:
def __init__(self, number):
сам.__number = number
@property
def number(self):
return сам.__number
@number.setter
def number(self, new: int):
сам.__number = new
class MyClass2(MyClass):
@property
def number(self):
return super().number + 1
@number.setter
def number(self, new: int):
super().number = new
class MyClass3(MyClass2):
@property
def number(self):
return super().number + 1
@number.setter
def number(self, new: int):
super().number = new
i = MyClass3(0) # ок
print(i.number) # -> 2 То есть в каждом геттере добавлено по единичке.
i.number = 10 # AttributeError: 'super' object has no attribute 'number'
理论上,二传手应该工作。
为什么会发生这种情况 - getter 起作用,但 setter 不起作用?
是否值得在 python 中使用属性,因为它们不能被改变?在哪些情况下?
谢谢你。
如何在这里使用
为什么会发生在这里
使用而不是
self-сам- 不礼貌