-
xx : 公有变量。
-
_xx:前置单下划线 — 口头私有变量,私有化属性或方法,一般来讲,变量名_xx被看作是“私有 的”,在模块或类外不可以使用。当变量是私有的时候,用_xx 来表示变量是很好的习惯。类对象和子类可以访问,这并不能完全做到真正的私有,只是约定俗成的而已,这样写表示不希望这个变量在外部被直接调用。意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。
-
__xx:前置双下划线 — 私有变量,私有化属性或方法,无法在外部直接访问(名字重整所以访问不到,只能是允许这个类本身进行访问了。连子类也不可以)。
- 双下划线开头的实例变量是不是一定不能从外部访问呢?其实也不是。不能直接访问__name是因为Python解释器对外把__name变量改成了_KaTeX parse error: Expected group after '_' at position 12: {classname}_̲_name,所以,仍然可以通过…{classname}__name来访问__name变量。但是强烈建议你不要这么干,因为不同版本的Python解释器可能会把__name改成不同的变量名。
-
__ xx__:前后双下划线 — 特殊变量,系统定义名字(这就是在python中强大的魔法方法),因为变量名__xxx__对Python 来说有特殊含义,对于普通的变量应当避免这种命名风格。
-
xx_:后置单下划线,用于避免与Python关键词的冲突。
参考文章:https://zhuanlan.zhihu.com/p/53469919