私有方法或者私有属性
-
xx
: 公有变量 -
_x
: 单前置下划线,from somemodule import *禁止导入 -
__xx
:双前置下划线,类的私有方法和私有属性,不能通过对象名直接调用,只能在属性对象的方法中通过self调用或者在外部通过特殊方式来调用,无法在外部直接访问(名字重整所以访问不到) -
__xx__
:双前后下划线,用户命名空间的魔法对象或属性。例如:__init__
, 不要自己发明这样的名字 -
xx_
:单后置下划线,用于避免与Python关键词的冲突
通过name mangling(名字重整(目的就是以防子类意外重写基类的方法或者属性)如:_Class__object
)机制就可以访问private了。
父类中属性名为__名字
开头的,子类不继承,子类不能访问,但是子类对象可以通过父类的公共方法间接访问到私有方法或者私有属性
如果在子类中向__名字
赋值,那么会在子类中定义的一个与父类相同名字的属性
_名
的变量、函数、类在使用from xxx import *时都不会被导入