-
Notifications
You must be signed in to change notification settings - Fork 0
# Python中关于私有、公有 的属性和方法
zshaolin edited this page May 20, 2018
·
1 revision
在模块中,单下划线开头的常被默认为内部函数,用from module import * 的方式,这些单下划线开头的变量和函数不会被导入;但是import module 这种方式导入模块的话,可以用module._变量 的形式访问到这些变量和函数。
以单下划线结尾的变量,通常是用于区分python中的关键字,比如Class 是关键字,我们可以变成 class_ 来定义一个变量。
双下划线开头的命名形式,通常用于python的类中,用于将变量伪私有化,即用双下划线开头的属性或方法,不能被外部调用;但实际上只是将该变量的名字做了改变,比如__method 变为了 _class_mwthod,通过 class(类名).__class__method的方式仍然可以调用。伪私有化的目的
python中的私有变量和私有方法仍然是可以访问的;访问方法如下:
私有变量:实例._类名__变量名
私有方法:实例._类名__方法名()
私有的属性,方法,不会被子类继承,也不能被访问
Python并没有真正的私有化支持,但可用下划线得到伪私有。
(1)_xxx "单下划线 " 开始的成员变量叫做保护变量,意思是只有类实例和子类实例能访问到这些变量, 需通过类提供的接口进行访问;不能用'from module import *'导入
(2)__xxx类中的私有变量/方法名,"双下划线"开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。
(3)xxx 系统定义名字,前后均有一个“双下划线” 代表python里特殊方法专用的标识,如 init()代表类的构造函数。
Python