码迷,mamicode.com
首页 > 编程语言 > 详细

【python】双下滑线,单下划线

时间:2018-06-23 14:28:04      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:imp   space   back   成员   ini   自动   prot   cte   访问   

1、_xxx 不能用于’from module import *’ 以单下划线开头的表示的是protected类型的变量。
即保护类型只能允许其本身与子类进行访问。
2、__xxx 双下划线的表示的是私有类型的变量。只能是允许这个类本身进行访问了。连子类也
不可以
3、__xxx___ 定义的是特列方法。像__init__之类的

实例
 1 >>> 
 2     class student(object):
 3     __name = 0
 4     _sex = male
 5 
 6 
 7 >>> student.__dict__
 8 mappingproxy({__module__: __main__, _student__name: 0, _sex: male, __dict__: <attribute __dict__ of student objects>, __weakref__: <attribute __weakref__ of student objects>, __doc__: None})
 9 
10 >>> student.__name
11 Traceback (most recent call last):
12   File "<pyshell#58>", line 1, in <module>
13     student.__name
14 AttributeError: type object student has no attribute __name
15 
16 >>> student._student__name
17 
18 >>> student._sex
19 male

总结:我们声明了一个学生类,分别用但下划线和双下划线定义了一个成员,然后我们试图访问成员,我们发现:双下划线的成员无法直接访问,通过__dict__我们看到,在类的内部,Python自动将__name 解释成 _student__name,于是我们用 _student__name访问,这次成功。然而,_name不受影响。所以: 两头下划线:Python类内置成员专用,区别用户自定义成员

 

【python】双下滑线,单下划线

标签:imp   space   back   成员   ini   自动   prot   cte   访问   

原文地址:https://www.cnblogs.com/qingsheng/p/9216910.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!