我已經學習了以JAVA爲第一語言的OOP原則,然後我已經轉移到Python,所以這個特殊的功能對我來說看起來有點奇怪,雖然在很多情況下很有用。在父類中訪問子類屬性是一個好主意
但是,我想知道它是否真的可取。
以下將在JAVA中給出錯誤,因爲您不能在父類中訪問子類的屬性。
class parent(object):
def print_x(self):
print self.x
class child(parent):
x = 10
child().print_x()
PEP8也給在這種情況下,一個警告:
未解決的屬性引用 'X' 類 '父'
代碼遍歷和調試變得有點問題我個人想法。
既然你可以* *'實例上parent'其自身,這將產生一個錯誤,*是*,這是有問題的。 Python比Java更具動態性,並且在編譯時不檢查它。與Java中的原因一樣,它仍然是不好的代碼。 – deceze