python 五种下划线含义

原文:https://zhuanlan.zhihu.com/p/36173202

 

  • 单前导下划线:_var
  • 单末尾下划线:var_
  • 双前导下划线:__var
  • 双前导和末尾下划线:__var__
  • 单下划线:_

1. 单前导下划线 _var

  下划线前缀的含义是告知其他程序员:以单个下划线开头的变量或方法仅供内部使用。 该约定在PEP 8中有定义。注意,外部仍然可以调用

单个下划线是一个Python命名约定,表示这个名称是供内部使用的。 它通常不由Python解释器强制执行,仅仅作为一种对程序员的提示  

 

2. 单末尾下划线 var_

  有时候,一个变量的最合适的名称已经被一个关键字所占用。 因此,像class或def这样的名称不能用作Python中的变量名称。 在这种情况下,你可以附加一个下划线来解决命名冲突。

 

3. 双前导下划线 __var

  双下划线前缀会导致Python解释器重写属性名称,以避免子类中的命名冲突。

  这也叫做名称修饰(name mangling) - 解释器更改变量的名称,以便在类被扩展的时候不容易产生冲突。

  在类上下文中使用,用于内部被调用,外部无法看到(完全私有,不同于单前下划线,那个是可以外部调用的)

 

4. 双前导和双末尾下划线 _var_

  魔术方法。

 

5.单下划线 _

  按照习惯,有时候单个独立下划线是用作一个名字,来表示某个变量是临时的或无关紧要的。

例如,在下面的循环中,我们不需要访问正在运行的索引,我们可以使用“_”来表示它只是一个临时值:

>>> for _ in range(32):
...    print('Hello, World.')

  你也可以在拆分(unpacking)表达式中将单个下划线用作“不关心的”变量,以忽略特定的值。 同样,这个含义只是“依照约定”,并不会在Python解释器中触发特殊的行为。 单个下划线仅仅是一个有效的变量名称,会有这个用途而已。

posted @ 2019-07-09 13:52  Marvin_Tang  阅读(2358)  评论(0编辑  收藏  举报