【速查表】Python下划线的含义,熟悉又陌生的东西!

简介:

1. 单前导下划线 _var

当涉及到变量和方法名称时,单个下划线前缀有一个约定俗成的含义。 它是对程序员的一个提示 - 意味着Python社区一致认为它应该是什么意思,但程序的行为不受影响。下划线前缀的含义是告知其他程序员:以单个下划线开头的变量或方法仅供内部使用。 该约定在PEP 8中有定义。

2. 单末尾下划线 var_

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

3. 双前导下划线 __var

双下划线前缀会导致Python解释器重写属性名称,以避免子类中的命名冲突。这也叫做名称修饰(name mangling) - 解释器更改变量的名称,以便在类被扩展的时候不容易产生冲突。

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

也许令人惊讶的是,如果一个名字同时以双下划线开始和结束,则不会应用名称修饰。 由双下划线前缀和后缀包围的变量不会被Python解释器修改。但是,Python保留了有双前导和双末尾下划线的名称,用于特殊用途。 这样的例子有,__init__对象构造函数,或__call__ --- 它使得一个对象可以被调用。这些dunder方法通常被称为神奇方法 - 但Python社区中的许多人都不喜欢这种方法。最好避免在自己的程序中使用以双下划线(“dunders”)开头和结尾的名称,以避免与将来Python语言的变化产生冲突。

5.单下划线 _

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

以下是一个简短的小结,罗列了五种常用的Python下划线模式的含义:


原文发布时间为:2018-09-13本文来自云栖社区合作伙伴“ 机器学习算法与Python学习”,了解相关信息可以关注“ 机器学习算法与Python学习”。
相关文章
|
2月前
|
Rust Java 测试技术
Python 数值中的下划线是怎么回事?
Python 数值中的下划线是怎么回事?
28 1
|
4月前
|
索引 Python
Python 中的单下划线和双下划线
Python 中的单下划线和双下划线
|
8月前
|
流计算
[oeasy]python0085_[趣味拓展]字体样式_下划线_中划线_闪动效果_反相_取消效果
[oeasy]python0085_[趣味拓展]字体样式_下划线_中划线_闪动效果_反相_取消效果
60 0
|
8月前
|
Java 程序员 索引
我终于把Python中下划线的含义弄清楚了(憋了很久了)
我终于把Python中下划线的含义弄清楚了(憋了很久了)
|
12月前
|
存储 Python 容器
[oeasy]python0135_变量名与下划线_dunder_声明与赋值
[oeasy]python0135_变量名与下划线_dunder_声明与赋值
64 0
|
Python
Python编程:将驼峰命名转为小写下划线命名
Python编程:将驼峰命名转为小写下划线命名
127 0
|
流计算
[oeasy]python0070_ 字体样式_下划线_中划线_闪动效果_反相_取消效果
[oeasy]python0070_ 字体样式_下划线_中划线_闪动效果_反相_取消效果
79 0
[oeasy]python0070_ 字体样式_下划线_中划线_闪动效果_反相_取消效果
python中在自己导入模块是 会有红色得下划线,但是不影响运行
python中在自己导入模块是 会有红色得下划线,但是不影响运行
|
Python
Python编程:将驼峰命名转为小写下划线命名
Python编程:将驼峰命名转为小写下划线命名
52 0
|
Java 程序员 索引
Python私有化及_下划线命名用途
Python中没有真正的私有属性或方法,没有真正的私有化,但有一些和命名有关的约定,让编程人员处理一些需要私有化的情况,我们常常需要区分私有方法、属性和公有方法、属性以方便管理和调用。那么在Python中如何做呢?