单下划线
在类中,带下划线的名称基本上是向其他程序员表明该属性或方法旨在私有。
对于半私有变量,建议使用单下划线,对于完全私有变量,建议使用双下划线。
引用PEP-8-
_single_leading_underscore:“内部使用”指标较弱。例如,从M import *不会导入名称以下划线开头的对象。
示例
以下代码显示双下划线前缀和单下划线前缀之间的区别class MyClass():
def __init__(self):
self.__fullrprivate = "World"
self._semiprivate = "Hello"
mc = MyClass()print mc._semiprivate
print mc.__fullprivate
输出结果Traceback (most recent call last):
Hello
File "C:/Users/nhooo1/~_1.py", line 8, in
print mc.__fullprivate
AttributeError: MyClass instance has no attribute '__fullprivate'