带Python变量的单个下划线前缀是什么意思?

单下划线

在类中,带下划线的名称基本上是向其他程序员表明该属性或方法旨在私有。 

对于半私有变量,建议使用单下划线,对于完全私有变量,建议使用双下划线。

引用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 <module>
print mc.__fullprivate
AttributeError: MyClass instance has no attribute '__fullprivate'