如图所示,B 类继承了 A 类;
B
A
当实例化对象时,B 类中没有构造函数, 应该调用父类的构造函数 __init__
__init__
但是里边的 self.__pirv() 为啥调用到父类 A 的 __priv, 而 self.pub() 又调到 B 中的 pub
self.__pirv()
__priv
self.pub()
pub
求解?
在Python从__开始的方法名称不是private,__的意思就让Python做name mangling,name mangling的结果就是_A__priv。这样的方法你应该不要overwrite。如果你想让子类overwrite一个方法你只用_,不用__
1.2m questions
2.1m answers
5 comments
56.5k users