python类中,没有真正的私有化。不管是方法还是属性,为了编程的需要,约定了下划线_的属性和方法不属于API,不应该在类的外面访问,也不会被from M import * 导入
python中的_和name mangling(名称修饰)有关
大多数python代码都遵循的公约,带下划线的前缀名称应被视为非公开的API的一部分,无论是函数、方法还是数据成员,他应该被当作一个实现细节 有利于子类重写父类的方法而不会破坏内部的方法调用
在类A中,__method方法变成了_A__method,所以在A中返回的是_A__method,B作为A的子类,之重写了__method方法,并没有重写method方法,所以调用B中的method方法时,调用的还是_A__method方法 在A 中没有__method方法,有的只是_A__method方法,也可以在外面直接调用,所以python中没有真正的私有化
重写B
__xx__经常时操作符或本地函数调用的magic methods
_init_()函数是当对象被创建初始化时调用 _new_()是用来创建实例