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处理python编码问题
Mar 13 Python
Python里隐藏的“禅”
Jun 16 Python
python爬虫入门教程--优雅的HTTP库requests(二)
May 25 Python
Python自动化运维_文件内容差异对比分析
Dec 13 Python
Python机器学习之SVM支持向量机
Dec 27 Python
python3将视频流保存为本地视频文件
Jun 20 Python
python读取Excel实例详解
Aug 17 Python
python实现批量文件重命名
Oct 31 Python
python实现二分类的卡方分箱示例
Nov 22 Python
python pycharm最新版本激活码(永久有效)附python安装教程
Sep 18 Python
python如何处理程序无法打开
Jun 16 Python
Python+Appium新手教程
Apr 17 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
php 大数据量及海量数据处理算法总结
2011/05/07 PHP
排序算法之PHP版快速排序、冒泡排序
2014/04/09 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
2015/11/17 PHP
PHP请求远程地址设置超时时间的解决方法
2016/10/29 PHP
PHP自定义函数获取汉字首字母的方法
2016/12/01 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
js遍历td tr等html元素
2012/12/13 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
2018/01/16 Javascript
微信小程序基于高德地图查找位置并显示文字
2019/10/30 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
2020/01/04 Javascript
JS实现碰撞检测效果
2020/03/12 Javascript
原生js拖拽功能制作滑动条实例代码
2021/02/05 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
Django框架封装外部函数示例
2019/05/28 Python
PyQt5组件读取参数的实例
2019/06/25 Python
python接口调用已训练好的caffe模型测试分类方法
2019/08/26 Python
详解Django将秒转换为xx天xx时xx分
2019/09/27 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
Python爬取网页信息的示例
2020/09/24 Python
浅谈HTML5新增及移除的元素
2016/06/27 HTML / CSS
松下电器美国官方商店:Panasonic美国
2016/10/14 全球购物
什么是SQL Server的确定性函数和不确定性函数
2016/08/04 面试题
亿阳信通股份有限公司笔试题(C#)
2016/03/04 面试题
连带责任保证书
2014/04/29 职场文书
2014年评职称工作总结
2014/11/20 职场文书
骨干教师申报材料
2014/12/17 职场文书
CSS 新特性 contain控制页面的重绘与重排问题
2021/04/30 HTML / CSS
JavaScript分页组件使用方法详解
2021/07/26 Javascript
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android