Python中单/双下划线使用
来源:互联网 发布:自动分辨率软件 编辑:程序博客网 时间:2024/06/01 03:59
转载自:http://blog.csdn.net/my2010sam/article/details/10949717
出处:http://blog.chinaunix.net/uid-1721137-id-266703.html
在Python编程中经常会遇到函数(function),方法(method)及属性(attribute)以下划线'_'作为前缀,这里做个总结。
允许通过类内部方法访问其他私有方法,如下:
主要存在四种情形
通过上面的描述,1和2两种情形比较容易理解,不多做解释,最迷惑人的就是3和4情形。
在解释3和4情形前,首先了解下python有关private的描述,python中不存在protected的概念,要么是public要么就是private,但是python中的private不像C++, Java那样,它并不是真正意义上的private,通过name mangling(名称改编,下面例子说明)机制就可以访问private了。
针对 3:
- 然后我们实例化Foo的一个对象,看看结果就很清晰了:
上文已经说明了,python中并没有真正意义的private,见以下方法便能够访问__fullprivate_method()
['_Foo__fullprivate_method','_halfprivate_method','public_method',...]
所谓的name mangling就是将__fullprivate_method替换成了_Foo__fullprivate_method,目的就是以防子类意外重写基类的方法或者属性。
允许通过类内部方法访问其他私有方法,如下:
针对4:
从上面的例子可以看出,f._halfprivate_method()可以直接访问,确实是。不过根据python的约定,应该将其视作private,而不要在外部使用它们,(如果你非要使用也没辙),良好的编程习惯是不要在外部使用它咯。
同时,根据Python docs的说明,_object和__object的作用域限制在本模块内,见以下示例:
通过上面的例子就能很好地把握有关下划线的细节了,平时还是需要多动手练练。
阅读全文
0 0
- Python中单/双下划线使用
- Python中单/双下划线使用
- python单下划线/双下划线使用总结
- python 单下划线/双下划线使用总结
- python 单下划线/双下划线使用总结
- python 单下划线/双下划线使用总结
- python 单下划线/双下划线使用总结
- python 单下划线/双下划线使用总结
- python 单下划线/双下划线使用总结
- python 单下划线/双下划线使用总结
- python 单下划线/双下划线使用总结
- Python中单下划线和双下划线的区别
- python 单下划线及双下划线使用总结
- Python中单下划线,双下划线,俩头下划线的区别。
- Python单双下划线,前后下划线解读
- python 的单下划线和双下划线
- python单下划线/双下划线总结
- Python单下划线和双下划线
- 斯坦福机器学习之贝叶斯统计正则化
- java文件复制
- Hadoop实践(三)---MapReduce中的输入和输出
- 加载多个checkbox
- 把字符串转换成整数(java版)
- Python中单/双下划线使用
- 909422229_下拉框便利跳转与jsp获取当前时间
- Codeforces 813A The Contest 题解
- Factory Method模式角色与结构
- awk使用备忘
- windows找不到文件“-n”
- Performance Toolkit安装
- md5加密工具类
- laravel依赖注入原理