用两个下划线开头的函数是私有函数. 虽然说是私有的, 但是还是可以在类外引用
>>> class test:
def __private():
print("private");
>>> a = test()
>>> a.__private()
Traceback (most recent call last):
File "", line 1, in
a.__private()
AttributeError: 'test' object has no attribute '__private'
>>> a._test__private()
Traceback (most recent call last):
File "", line 1, in
a._test__private()
TypeError: __private() takes no arguments (1 given)
>>> dir(test)
['__class__', '__delattr__', '__dict__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_test__private']
>>> test._test__private()
private
>>>