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类型强制转换long to int的代码
Feb 10 Python
python实现数通设备端口监控示例
Apr 02 Python
Python正则表达式匹配中文用法示例
Jan 17 Python
教你学会使用Python正则表达式
Sep 07 Python
python使用turtle绘制分形树
Jun 22 Python
Python实现基于C/S架构的聊天室功能详解
Jul 07 Python
转换科学计数法的数值字符串为decimal类型的方法
Jul 16 Python
python DataFrame 取差集实例
Jan 30 Python
解决python中使用PYQT时中文乱码问题
Jun 17 Python
深入了解Django中间件及其方法
Jul 26 Python
python中的unittest框架实例详解
Feb 05 Python
Python字符串对齐方法使用(ljust()、rjust()和center())
Apr 26 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
mac os快速切换多个PHP版本的方法
2017/03/07 PHP
php smtp实现发送邮件功能
2017/06/22 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
2007/01/16 Javascript
javascript 面向对象思想 附源码
2009/07/07 Javascript
JavaScript 学习初步 入门教程
2010/03/25 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
2012/06/20 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
2014/06/24 Javascript
jquery简单实现网页层的展开与收缩效果
2015/08/07 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
jquery.serialize() 函数语法及简单实例
2016/07/08 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
JavaScript实现获取远程的html到当前页面中
2017/03/26 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
Angularjs 事件指令详细整理
2017/07/27 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
vue.js实现二级菜单效果
2019/10/19 Javascript
Python 字典dict使用介绍
2014/11/30 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
2018/01/04 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
2018/04/21 Python
使用python Fabric动态修改远程机器hosts的方法
2018/10/26 Python
Django调用百度AI接口实现人脸注册登录代码实例
2020/04/23 Python
Python datetime模块使用方法小结
2020/06/18 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
物流合作计划书
2014/01/10 职场文书
《灯光》教学反思
2014/02/08 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
2014年志愿者工作总结
2014/11/20 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
发工资啦!教你用Python实现邮箱自动群发工资条
2021/05/10 Python
opencv 分类白天与夜景视频的方法
2021/06/05 Python
通过Qt连接OpenGauss数据库的详细教程
2021/06/23 PostgreSQL
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python