python中普遍在变量或方法命名时使用单下划线_
或双下划线__
的定义方式,本文介绍五种下划线模式。
1. 前单下划线_var
这是PEP8的一种规定:即用来表示内部变量或方法。仅用作提醒,并不影响其调用。
但注意作为外部模块被导入时,若采用通配符(即from xxx import *),前单下划线的变量或方法无法被导入,除非该外部模块中定义了包含该变量或方法的__all__
列表。
2. 后单下划线var_
用来定义变量名或函数名时,防止与内置关键字冲突,如定义变量class_
。
3. 前双下划线__var
在类中,若变量名或函数名采用这种方式命名,则python解释器会自动改变其名称(称作名称修饰),具体而言会在其前面添加类名,即_ClassName__var
。当然,在类内部调用时,无需考虑该因素,直接通过__var调用即可。
采用这种方式,一般是为了防止该变量或函数被子类重写!
4. 前后双下划线__var__
若类中的变量名或函数名前后均有双下划线,则不会发生名称修饰。但这种命名方式是python保留用作特殊用途的,即魔法方法,自己定义变量或函数时应避免采用这种方式。
5. 单下划线_
常用在循环中表示临时、不重要的循环变量。
在解释器中,还可以用来快速访问先前的计算结果。