python私有方法和私有属性属性理解,子类继承

私有属性、方法——Python并没有真正的私有化支持,但可用下划线得到伪私有
尽量避免定义以下划线开头的变量
   (1)_xxx      "单下划线 " 开始的成员变量叫做保护变量,意思是只有类对象(即类实例)和子类对象自己能访问到这些变量,需通过类提供的接口进行访问;不能用\'from module import *\'导入
   (2)__xxx    类中的私有变量/方法名 (Python的函数也是对象,所以成员方法称为成员变量也行得通。)," 双下划线 " 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。
    (3)__xxx__ 系统定义名字,前后均有一个“双下划线” 代表python里特殊方法专用的标识,如 __init__() 代表类的构造函数。

In [6]: class Dog(): ...: def __sit_down(self): ...: print(\'坐下了\') ...: def sit_down(self,host_name): ...: if host_name==\'主人\': ...: self.__sit_down() In [7]: w=Dog() In [8]: w.sit_down(\'主人\') 坐下了 In [9]: w.sit_down(\'\') In [10]: w.__sit_down() --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-10-16df8360e9bf> in <module>() ----> 1 w.__sit_down() AttributeError: \'Dog\' object has no attribute \'__sit_down\' In [13]: w._Dog__sit_down() 坐下了

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zypxdj.html