python中单下划线和双下划线的区别

1、python中双下划线(__str__)代表这个变量是特殊变量,是可以直接访问的

__xxx___ 定义的是特列方法。像__init__之类的

2、python前面双划线(__name)代表这个变量是私有变量

私有变量只有内部可以访问,外部不能访问。

双下划线开头的实例变量是不是一定不能从外部访问呢?其实也不是。不能直接访问__name是因为Python解释器对外把__name变量改成了_${classname}__name,所以,
仍然可以通过_${classname}__name来访问__name变量。但是强烈建议你不要这么干,因为不同版本的Python解释器可能会把__name改成不同的变量名

3、单下划线开头比如_name,则表示是口头实例私有变量,是可访问的,但是也不要随表访问。

_xxx 不能用于’from module import *’ 以单下划线开头的表示的是protected类型的变量。

即保护类型只能允许其本身与子类进行访问。

 

原文地址:https://www.cnblogs.com/one-tom/p/11749739.html