v: 表明是私有属性或私有方法, 在外部不应调用
    __v: 表明是私有属性或私有方法, 在外部不应调用; 在子类中, 不会被子类的同名属性或方法覆盖. 名字被重命名为
    类名_v
    v
    : 避免名称冲突, 比如不希望某个属性或方法与关键字冲突.

    1. class A:
    2. def __init__(self):
    3. self._internal = 0
    4. self.public = 1
    5. def public_method(self):
    6. print('public_method')
    7. def _internal_method(self):
    8. print('_internal_method')
    9. class B:
    10. def __init__(self):
    11. self.__private = 0
    12. def __private_method(self):
    13. print('__private_method')
    14. def public_method(self):
    15. print('public_method')
    16. print('[*] run __private_method from public_method')
    17. self.__private_method()
    18. class C(B):
    19. def __init__(self):
    20. super().__init__()
    21. self.__private = 1