这是父类为Apparel的代码段。服装具有属性__price。接下来,我定义一个从Cotton类继承的类Cotton。 我使用super()调用父方法。
class Apparel:
def __init__(self,price,item_type):
self.__price=price
self.__item_type=item_type
def calculate_price(self):
self.__price=self.__price+0.05*self.__price
棉花类的摘要:
class Cotton(Apparel):
def __init__(self,price,discount):
self.__discount= discount
super().__init__(price,"Cotton")
def calculate_price(self):
super().calculate_price()
self.__price= self.__price-self.__discount
def get_price(self):
return self.__price
已经使用super()调用了父方法,我希望该特定方法中的子级可以使用父级的属性'__price'。但是,我在运行此错误:
c1= Cotton(25000,2500)
c1.calculate_price()
print (c1.get_price())
并且,错误如下: AttributeError:“棉花”对象没有属性“ _Cotton__price”
如果由于名称重整,如何同时保持属性“ super private”,以访问子类中的属性。 我尝试了几种变体,例如尝试使用Apparel .__ price而不是self .__ price在Cotton类中访问__price,但仍然无法正常工作。试图检查某个地方是否很傻,仍然无法弄清楚。将不胜感激。谢谢。