Python中单下划线和双下划线
__foo__:一种约定,Python内部的名字,用来区别其他用户自定义的命名,以防冲突,就是例如__init__(),__del__(),__call__()这些特殊方法
_foo:一种约定,用来指定变量私有.程序员用来指定私有变量的一种方式.不能用from module import * 导入,其他方面和公有一样访问;
__foo:这个有真正的意义:解析器用_classname__foo来代替这个名字,以区别和其他类相同的命名,它无法直接像公有成员一样随便访问,通过对象名._类名__xxx这样的方式可以访问.
- >>> class MyClass():
- ... def __init__(self):
- ... self.__superprivate = "Hello"
- ... self._semiprivate = ", world!"
- ...
- >>> mc = MyClass()
- >>> print mc.__superprivate
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- AttributeError: myClass instance has no attribute '__superprivate'
- >>> print mc._semiprivate
- , world!
- >>> print mc.__dict__
- {'_MyClass__superprivate': 'Hello', '_semiprivate': ', world!'}
解压密码: detechn或detechn.com
免责声明
本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。
本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。