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 15 Python
详解Python map函数及Python map()函数的用法
Nov 16 Python
Python实现学校管理系统
Jan 11 Python
python实现图书馆研习室自动预约功能
Apr 27 Python
python smtplib发送带附件邮件小程序
May 22 Python
python 利用文件锁单例执行脚本的方法
Feb 19 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
Jul 22 Python
Python实现微信翻译机器人的方法
Aug 13 Python
基于python+selenium的二次封装的实现
Jan 06 Python
使用python接受tgam的脑波数据实例
Apr 09 Python
Python unittest如何生成HTMLTestRunner模块
Sep 08 Python
python多线程方法详解
Jan 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
水质对咖图啡风味的影响具体有哪些
2021/03/03 冲泡冲煮
PHP $_SERVER详解
2009/01/16 PHP
PHP iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
php防止sql注入代码实例
2013/12/18 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
Javascript堆排序算法详解
2014/12/03 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
JQuery中DOM事件合成用法实例分析
2015/06/13 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
2017/01/19 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
2018/03/16 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
微信小程序时间控件picker view使用详解
2018/12/28 Javascript
详解Typescript 内置的模块导入兼容方式
2020/05/31 Javascript
原生JS实现弹幕效果的简单操作指南
2020/11/10 Javascript
Python可变参数函数用法实例
2015/07/07 Python
Python基础知识_浅谈用户交互
2017/05/31 Python
浅谈Django的缓存机制
2018/08/23 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
python自动生成model文件过程详解
2019/11/02 Python
详解Open Folder as PyCharm Project怎么添加的方法
2020/12/29 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
HTC VIVE美国官网:VR虚拟现实眼镜
2018/02/13 全球购物
新学期国旗下演讲稿
2014/05/08 职场文书
平安家庭示范户事迹
2014/06/02 职场文书
2014年保密工作总结
2014/11/22 职场文书
晚会开幕词
2015/01/28 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python
Vue3.0写自定义指令的简单步骤记录
2021/06/27 Vue.js
Python中Selenium对Cookie的操作方法
2021/07/09 Python