python中私有函数调用方法解密


Posted in Python onApril 29, 2016

本文实例讲述了python中私有函数调用方法。分享给大家供大家参考,具体如下:

与大多数语言一样,Python 也有私有的概念:

① 私有函数不可以从它们的模块外面被调用
② 私有类方法不能够从它们的类外面被调用
③ 私有属性不能够从它们的类外面被访问

与大多数的语言不同,一个 Python 函数,方法,或属性是私有还是公有,完全取决于它的名字。

如果一个 Python 函数,类方法,或属性的名字以两个下划线开始(但不是结束),它是私有的;其它所有的都是公有的。 Python 没有类方法 保护 的概念(只能用于它们自已的类和子类中)。类方法或者是私有(只能在它们自已的类中使用)或者是公有(任何地方都可使用)。

在 Python 中,所有的专用方法和内置属性遵守一个标准的命名习惯:开始和结束都有两个下划线。不要对你自已的方法和属性用这种方法命名;到后面,它只会把你(或其它人)搞乱。 私有方法由于某种原因而私有,但是象其它很多在 Python 中的东西一样,它们的私有化基本上是习惯问题,而不是强迫的。

注意,尽管我们不应该从类的外部访问类的私有方法,但实际上我们是可以访问的。类的私有方法的名字实际上都被“翻译”成前面加上单下划线和类名的形式。看下面的代码就会明白了。

>>> class A:
  def __privatefun(self):
    print('this is private function')
>>> a._A__privatefun()
this is private function

看到没有!我们从类的外部调用了类的私有方法!这是一个很有意思的技巧,但是切记我们不应该这样使用。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python动态加载模块的3种方法
Nov 22 Python
Python学习小技巧之列表项的拼接
May 20 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
Jun 15 Python
Django 实现下载文件功能的示例
Mar 06 Python
tensorflow实现softma识别MNIST
Mar 12 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
Jun 13 Python
pycharm运行和调试不显示结果的解决方法
Nov 30 Python
Python+pyplot绘制带文本标注的柱状图方法
Jul 08 Python
Python整数与Numpy数据溢出问题解决
Sep 11 Python
python tkinter canvas使用实例
Nov 04 Python
Django 解决model 反向引用中的related_name问题
May 19 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
Dec 09 Python
简单学习Python time模块
Apr 29 #Python
Python中MySQL数据迁移到MongoDB脚本的方法
Apr 28 #Python
python遍历目录的方法小结
Apr 28 #Python
Python网络爬虫实例讲解
Apr 28 #Python
Python脚本实现自动发带图的微博
Apr 27 #Python
Python实现新浪博客备份的方法
Apr 27 #Python
Python2.7简单连接与操作MySQL的方法
Apr 27 #Python
You might like
数据库相关问题
2006/10/09 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
2013/04/10 PHP
深入php处理整数函数的详解
2013/06/09 PHP
php基于闭包实现函数的自调用(递归)实例分析
2016/11/11 PHP
firefox事件处理之自动查找event的函数(用于onclick=foo())
2010/08/05 Javascript
拖动table标题实现改变td的大小(css+js代码)
2013/04/16 Javascript
Jquery操作Ajax方法小结
2015/11/29 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
2017/01/03 Javascript
React创建组件的三种方式及其区别
2017/01/12 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
vue实现节点增删改功能
2019/09/26 Javascript
对numpy中轴与维度的理解
2018/04/18 Python
python 常见字符串与函数的用法详解
2018/11/23 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
TensorBoard 计算图的可视化实现
2020/02/15 Python
Python 如何展开嵌套的序列
2020/08/01 Python
印度领先的眼镜电子商务网站:Lenskart
2019/12/16 全球购物
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
公司市场部岗位职责
2013/12/02 职场文书
浪费资源的建议书
2014/03/12 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
春节联欢会策划方案
2014/05/16 职场文书
本科应届生自荐信
2014/06/29 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
场地使用证明模板
2014/10/25 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
导游词之永泰公主墓
2019/12/04 职场文书
Vue的生命周期一起来看看
2022/02/24 Vue.js