1. 概述
在Python经常能见到含下划线(underscore)修饰的的变量和方法(如__name__,_var等),这些下划线的作用称之为名字修饰(name decoration)。在Python中,名字修饰通常有以下几种情况:
- 单前缀下划线(single leading underscore):_var
- 单后缀下划线(single trailingunderscore):var_
- 双前缀下划线(double leading underscores):__var
- 双前缀+双后缀下划线(double leading & trailing underscores):__var__
除了名字修饰,在Python中下划线还有以下用法:
- 单独一个下划线
- 数字分隔符下划线
- IPython中的特殊用途
我们对以上用法进行逐一详解。
2. 名字修饰(name decoration)
2.1 单前缀下划线
方法和实例变量
Use one leading underscore only for non-public methods and instance variables. [1]
即,单前缀下划线用于私有的方法和实例变量。但Python和Java不同,并没有对公有和私有进行严格的区分。即便一个方法或者变量有单前缀下划线,也不影响被外界调用,它的作用仅限于一种“提示”(weak “internal use” indicator)。
class Test:
def __init__(self):
self.a = "a"
self._b = "b"
def _private_method(self):
return ("This is a