我想通过扩展总是具有相同的第一阶段的方法,子类化说:如何在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'定义为属性(无论是公共还是私人取决于你)来做到这一点的正确方法是 –