Python中 单下划线、前双下划线和前后双下划线的区别

  1. xx : 公有变量

  2. _xx:前置单下划线 — 口头私有变量,私有化属性或方法,一般来讲,变量名_xx被看作是“私有 的”,在模块或类外不可以使用。当变量是私有的时候,用_xx 来表示变量是很好的习惯。类对象和子类可以访问,这并不能完全做到真正的私有,只是约定俗成的而已,这样写表示不希望这个变量在外部被直接调用。意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。

  3. __xx:前置双下划线 — 私有变量,私有化属性或方法,无法在外部直接访问(名字重整所以访问不到,只能是允许这个类本身进行访问了。连子类也不可以)。

  • 双下划线开头的实例变量是不是一定不能从外部访问呢?其实也不是。不能直接访问__name是因为Python解释器对外把__name变量改成了_KaTeX parse error: Expected group after '_' at position 12: {classname}_̲_name,所以,仍然可以通过…{classname}__name来访问__name变量。但是强烈建议你不要这么干,因为不同版本的Python解释器可能会把__name改成不同的变量名。
  1. __ xx__:前后双下划线 — 特殊变量,系统定义名字(这就是在python中强大的魔法方法),因为变量名__xxx__对Python 来说有特殊含义,对于普通的变量应当避免这种命名风格。

  2. xx_:后置单下划线,用于避免与Python关键词的冲突。


参考文章:https://zhuanlan.zhihu.com/p/53469919

发布了53 篇原创文章 · 获赞 69 · 访问量 2097
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览