单下划线
单下划线用作变量
最常见的一种使用场景是作为变量占位符,使用场景明显可以减少代码中多余变量的使用。为了方便理解,_可以看作被丢弃的变量名称,这样做可以让阅读你代码的人知道,这是个不会被使用的变量,e.g.。
for _, _, filenames in os.walk(targetDir):
print(filenames)
for _ in range(100):
print('PythonPoint')
在交互解释器比如iPython中,_变量指向交互解释器中最后一次执行语句的返回结果。
单下划线前缀名称(例如_pythonPoint)
这表示这是一个保护成员(属性或者方法),只有类对象和子类对象自己能访问到这些变量,是用来指定私有变量和方法的一种方式(约定而已)。如果使用from a_module import *导入时,这部分变量和函数不会被导入。不过值得注意的是,如果使用import a_module这样导入模块,仍然可以用a_module._pythonPoint这样的形式访问到这样的对象。
另外单下划线开头还有一种一般不会用到的情况,例如使用一个C编写的扩展库有时会用下划线开头命名,然后使用一个去掉下划线的Python模块进行包装。如struct这个模块实际上是C模块_struct的一个Python包装。
单下划线后缀名称
通常用于和Python关键词区分开来,比如我们需要一个变量叫做class,但class是
Python的关键词,就可以以单下划线结尾写作class_。
双下划线
双下划线前缀名称
这表示这是一个私有成员(属性或者方法)。它无法直接像公有