我想通過擴展總是具有相同的第一階段的方法,子類化說:如何在Python 3中重用超類方法的變量?
class Data:
def show(self):
# this part is common for all subclasses
total=10
class PrintA(Data):
def show(self):
Data.show(self)
print(total)
class PrintAPlus(Data):
def show(self):
Data.show(self)
print(total+10)
不過,我得到NameError: name a is not defined
。
如何重用total
變量從超類的方法? (最明顯的一種是將其保存爲實例的屬性,但我不需要在那裏,其實。)
簡短的回答返回值:你不能。 – jonrsharpe
*明顯的是將它作爲實例的屬性* < - yep保存,就是這樣。或者你可以從父方法返回它,並使用該返回值。 – wim
如果你不想'total'作爲公共屬性,你可以在它之前用'_'定義它爲private。但是,通過將'total'定義爲屬性(無論是公共還是私人取決於你)來做到這一點的正確方法是 –