[英]Python: Using derived class attributes in base class
當我遇到這個特定代碼時,我正在閱讀一些代碼,其中基類方法打印一些來自派生類的屬性,調用方法的對象來自派生。
class A(object):
def printFreak(self):
print self.derived_attrib
class B(A):
def __init__(self, num):
self.derived_attrib = num
my_obj = B(10)
my_obj.printFreak()
由於我之前沒有見過這樣的行為(比如在C ++中),我無法理解這一點。
任何人都可以幫我理解這一點,這是如何工作的? 這可能與C ++的一些概念有關嗎?
在Python中,屬性在運行時被解析,因此它只是在self
引用的對象中查找名為derived_attrib
的屬性,並發現有一個屬性。
只要derived_attrib
被聲明為A
字段然后在B
分配,它就可以在C ++中工作,因為編譯器將能夠找出A
的方法中self.derived_attrib
含義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.