[英]Overriding properties in python3
在 test() 方法中的以下代碼中,self.name 為無。 我期待它是“B-Stack”。 我錯過了什么嗎?
class A:
def __init__(self):
self.__name = None
@property
def name(self):
return self.__name
@name.setter
def name(self, value):
self.__name = "A- " + value
class B(A):
@A.name.setter
def name(self, value):
self.__name = "B- " + value
def test(self):
print(self.name) # It should print B- Stack
b = B()
b.name = "Stack"
b.test()
您正在打印self.name
,它是 setter 方法而不是實際的self.__name
。
您可以在測試方法中添加 getter 方法或print(self.__name)
:
您可以在 B() 中添加 getter 方法
@name.getter
def name(self):
return self.__name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.