python _ __ __xx__的区别

1. _的含义

python类中,没有真正的私有化。不管是方法还是属性,为了编程的需要,约定了下划线_的属性和方法不属于API,不应该在类的外面访问,也不会被from M import * 导入
python _ __ __xx__的区别

2. __的含义

python中的_和name mangling(名称修饰)有关

大多数python代码都遵循的公约,带下划线的前缀名称应被视为非公开的API的一部分,无论是函数、方法还是数据成员,他应该被当作一个实现细节
有利于子类重写父类的方法而不会破坏内部的方法调用
python _ __ __xx__的区别

在类A中,__method方法变成了_A__method,所以在A中返回的是_A__method,B作为A的子类,之重写了__method方法,并没有重写method方法,所以调用B中的method方法时,调用的还是_A__method方法
在A 中没有__method方法,有的只是_A__method方法,也可以在外面直接调用,所以python中没有真正的私有化

重写Bpython _ __ __xx__的区别

3. __XX__的含义

__xx__经常时操作符或本地函数调用的magic methods

_init_()函数是当对象被创建初始化时调用
_new_()是用来创建实例

相关文章:

  • 2021-11-29
  • 2021-08-29
  • 2022-12-23
  • 2022-01-12
  • 2021-08-22
  • 2021-12-25
  • 2021-09-08
猜你喜欢
  • 2021-09-17
  • 2021-10-14
  • 2021-11-28
  • 2021-06-02
  • 2021-09-06
相关资源
相似解决方案