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打开文件并获取文件相关属性的方法
Apr 23 Python
python中threading超线程用法实例分析
May 16 Python
举例讲解Django中数据模型访问外键值的方法
Jul 21 Python
python实现xlsx文件分析详解
Jan 02 Python
python实现旋转和水平翻转的方法
Oct 25 Python
Python图像处理模块ndimage用法实例分析
Sep 05 Python
Win10 安装PyCharm2019.1.1(图文教程)
Sep 29 Python
python实现猜数游戏
Mar 27 Python
python查看矩阵的行列号以及维数方式
May 22 Python
python接入支付宝的实例操作
Jul 20 Python
PyCharm中关于安装第三方包的三个建议
Sep 17 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
Jan 15 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
同台服务器使用缓存APC效率高于Memcached的演示代码
2010/02/16 PHP
php实现设计模式中的单例模式详解
2014/10/11 PHP
php中执行系统命令的方法
2015/03/21 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
php将html转为图片的实现方法
2017/05/19 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
JS 树形递归实例代码
2010/05/18 Javascript
基于JQuery的6个Tab选项卡插件
2010/09/03 Javascript
js history对象简单实现返回和前进
2013/10/30 Javascript
jQuery.extend 函数及用法详细
2015/09/06 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
[01:52]2020年DOTA2 TI10夏季活动预告片
2020/07/15 DOTA
Python常见工厂函数用法示例
2018/03/21 Python
python爬取哈尔滨天气信息
2018/07/14 Python
python中的常量和变量代码详解
2018/07/25 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
如何使用Python自动控制windows桌面
2019/07/11 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
2019/08/06 Python
Python字符串中添加、插入特定字符的方法
2019/09/10 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
Python原始套接字编程实例解析
2020/01/29 Python
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
财政局长自荐信范文
2013/12/22 职场文书
研究生求职自荐书
2014/06/23 职场文书
2014年信息宣传工作总结
2014/12/18 职场文书
2015年公路养护工作总结
2015/05/13 职场文书
五年级语文教学反思
2016/03/03 职场文书
nginx服务器的下载安装与使用详解
2021/08/02 Servers