[英]Accessibility to variable of superclass when initializing the subclass
我試圖在初始化子類時從其子類訪問超類的變量。 我不明白為什么不能直接訪問其超類的變量,但可以通過父級的 getter function 訪問它。 (它是一個公共變量)
class Parent(object):
def __init__(self, age=22):
self.age = age
def get_age(self):
return self.age
class Child(Parent):
def __init__(self):
super().__init__()
# self.age = super().age - 15 # This line causes error
self.age = super().get_age() - 15 # The line works
def main():
c = Child()
print("The child's age is " + str(c.get_age()))
if __name__ == '__main__':
main()
super()
function 返回一個代理 object 代表超類,通過搜索方法可以訪問超類的方法。 但是它不能訪問父 class 中的變量。 這就是super()
的工作原理。 要在此處訪問超類的變量,您可以簡單地使用self.age
。 有關super()
如何工作的更多信息,請參閱文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.