python是通过 下划线 访问控制符来限定成员函数和属性的访问
1.双下划线
当在NumStr类中定义了属性 self.__num ,用于访问这个数据值的标识就变成了self._NumStr__num.
在类名后加上后形成的新的“混淆”结构将可防止在祖先类或子孙类中的同名冲突。即如果父类有一个xxx属性,子类中也定义了一个,这时子类的xxx属性就覆盖了父类的xxx属性,这时我们必须采用parent.xxx这样的形式来访问父类的同名方法。使用__xxx,子类就可以安全的使用__xxx,而不需担心它会影响到父类中的__xxx
2.单下划线
使用单下划线_ 可以防止模块的属性用“from module import *”来加载,从而实现了模块间或模块中类或函数等属性的私有化
1.双下划线
当在NumStr类中定义了属性 self.__num ,用于访问这个数据值的标识就变成了self._NumStr__num.
在类名后加上后形成的新的“混淆”结构将可防止在祖先类或子孙类中的同名冲突。即如果父类有一个xxx属性,子类中也定义了一个,这时子类的xxx属性就覆盖了父类的xxx属性,这时我们必须采用parent.xxx这样的形式来访问父类的同名方法。使用__xxx,子类就可以安全的使用__xxx,而不需担心它会影响到父类中的__xxx
2.单下划线
使用单下划线_ 可以防止模块的属性用“from module import *”来加载,从而实现了模块间或模块中类或函数等属性的私有化

浙公网安备 33010602011771号