题目是这样的:
有2个类 A 和B,A是父类、B是子类
A中有私有属性a=None
现在子类要给父类中的私有属性a赋新值
我一开始是这样写的:
class A():
def __init__(self):
self.__a=None
@property
def a(self):
return self.__a
@a.setter
def a(self,a):
self.__a=a
class B(A):
def __init__(self):
super().__init__
def printa(self):
super().a=11
print(super().a)
b=B()
b.printa()
结果报错了,说super没有a这个属性,(怎么能没有呢)
我后来是这样改的:
将第一个super().a改成A.a,结果就正确了