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 相关文章推荐
pycharm 使用心得(五)断点调试
Jun 06 Python
Python中使用Beautiful Soup库的超详细教程
Apr 30 Python
将Emacs打造成强大的Python代码编辑工具
Nov 20 Python
tensorflow构建BP神经网络的方法
Mar 12 Python
Python聊天室程序(基础版)
Apr 01 Python
Python中判断输入是否为数字的实现代码
May 26 Python
基于Python在MacOS上安装robotframework-ride
Dec 28 Python
Python3实现统计单词表中每个字母出现频率的方法示例
Jan 28 Python
pytorch 实现查看网络中的参数
Jan 06 Python
Python Django中间件使用原理及流程分析
Jun 13 Python
python 基于opencv 绘制图像轮廓
Dec 11 Python
Python之qq自动发消息的示例代码
Feb 18 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 MVC模式在网站架构中的实现分析
2010/03/04 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
基于laravel-admin 后台 列表标签背景的使用方法
2019/10/03 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
JavaScript定义类和对象的方法
2014/11/26 Javascript
JavaScript中string转换成number介绍
2014/12/31 Javascript
js命名空间写法示例
2015/12/18 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
使用原生js封装的ajax实例(兼容jsonp)
2017/10/12 Javascript
vue跨域解决方法
2017/10/15 Javascript
在Vue中使用highCharts绘制3d饼图的方法
2018/02/08 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
2018/06/28 Javascript
深入理解Vue router的部分高级用法
2018/08/15 Javascript
新版小程序登录授权的方法
2018/12/12 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
2019/09/09 Javascript
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
利用python在大量数据文件下删除某一行的例子
2019/08/21 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
Python confluent kafka客户端配置kerberos认证流程详解
2020/10/12 Python
Python生成pdf目录书签的实例方法
2020/10/29 Python
HTML5 File接口在web页面上使用文件下载
2017/02/27 HTML / CSS
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
医院护士求职自荐信格式
2013/09/21 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
酒店辞职书怎么写
2015/02/26 职场文书
寒假社会实践个人总结
2015/03/06 职场文书
台风停课通知
2015/04/24 职场文书
高三语文教学反思
2016/02/16 职场文书
使用nginx配置访问wgcloud的方法
2021/06/26 Servers
Python实现排序方法常见的四种
2021/07/15 Python
青岛市的收音机研制与生产
2022/04/07 无线电