默认情况下,Python中的成员变量和方法都是public的,而Python中没有类似public、private等访问修饰符控制访问权限。
如果要使用私有变量需要在变量名或者方法名前加上“__”双划线。这是一种name mangling技术,将_membername替换成_classname_membername,是一种伪私有化方式。为了保证class之外访问私有变量,Python会在类的内部自动将我们定义的__spam私有变量的名字替换为_classname__spam,所以在外部访问__any的时候回提示找不到该变量。不过Python中的私有变量和私有方法仍然是可以访问的,例如:
私有变量:实例._类名__变量名
私有方法:实例._类名__方法名()
_xxx 单下划线修饰的成员变量,表示只有类实例或者子类实例可以访问,类似于protect
__xxx 双下划线修饰的成员变量,表示只有类对象自己能访问,类似于private
__xxx__ 系统定义名字,表示特殊方法专用的标识,如__init__(),代表类的构造方法
网友评论