python中_、__、__xx__(单下划线、双下划线等)的含义

时间:2021-04-11 07:39:34

(1)_xxx

"单下划线 " 开始的成员变量相当于私有变量,也叫做保护变量,意思是只有类实例和子类实例能访问到这些变量,需通过类提供的接口进行访问(可以定义有点像java中的getter、setter方法,借助方法访问,而不是直接对变量动刀子);不能用'from module import *'导入。其实,Python并没有真正的私有化支持,用下划线得到的是伪私有,也就是说如果你强行要用也是可以的,但不符合python的规范。我们应该尽量避免重新定义以下划线开头的变量。

  (2)__xxx

双下划线:类中的私有变量/方法名 (Python的函数也是对象,所以成员方法称为成员变量也行得通)。" 双下划线 " 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。

  (3)__xxx__

系统定义名字,前后均有一个“双下划线” 代表python里特殊方法专用的标识,如 __init__()代表类的构造函数。类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,比如一个模块的__author__,__name__就是特殊变量,模块定义的文档注释(就是模块开头的字符串)也可以用特殊变量__doc__访问,我们自己的变量一般不要用这种变量名。

总结就是说,这些写法,其实都是python的一些约定俗成的规范,虽然不是强行的规定(即使你不遵守,强行调用、访问,也不会崩溃报错),但大家还是要遵守!不然在代码交接、传承使用上就会出问题啦。
————————————————
版权声明:本文为CSDN博主「奔跑的Yancy」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lyxleft/article/details/85691186