在学习Python的时候,会不理解为什么在方法(method)前面会加好几个下划线,有时甚至两边都会加。在Python中下划线还具有 private 和 protected 类似的访问权限作用,下面我们具体分析。
Python主要存在四种命名:
(1)object #公用方法
(2)__object__ #内建方法,用户不要这样定义
(3)__object #全私有,全保护(private)
(4)_object #半保护(protected)
核心风格:避免用下划线作为变量名的开始。
因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,如类的gouzao
单下划线开头的变量
“单下划线”开始的变量叫做保护变量,意思是只有类对象和子类对象能访问到这些变量
双下划线开头的变量
“双下划线”开始的变量叫做私有变量,意思是只有类本身能够访问达到这些变量,连子类对象也不能访问。
class Foo():
def __init__():
...
def public_method():
print 'This is public method'
def __fullprivate_method():
print 'This is fullprivate_method'
def _halfprivate_method():
print 'This is halfprivate_method'
f = Foo()
f.public_method() # OK
f.__fullprivate_method() # Error occur
f._halfprivate_method() # OK
f._Foo__fullprivate_method() # OK