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调用短信猫控件实现发短信功能实例
Jul 04 Python
python基于Tkinter库实现简单文本编辑器实例
May 05 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
Jul 11 Python
Python插件virtualenv搭建虚拟环境
Nov 20 Python
python定时关机小脚本
Jun 20 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
Dec 12 Python
Python3爬虫全国地址信息
Jan 05 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
Feb 22 Python
Visual Studio Code搭建django项目的方法步骤
Sep 17 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 Python
教你使用pyinstaller打包Python教程
May 27 Python
Python一行代码实现自动发邮件功能
May 30 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中文汉字验证码
2007/04/08 PHP
php简单创建zip压缩文件的方法
2016/04/30 PHP
PHP使用new StdClass()创建空对象的方法分析
2017/06/06 PHP
PHP面向对象之事务脚本模式(详解)
2017/06/07 PHP
Extjs中RowExpander控件的默认展开问题示例探讨
2014/01/24 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
浅谈jquery页面初始化的4种方式
2016/11/27 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
深入理解vue路由的使用
2017/03/24 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
vue.js组件之间传递数据的方法
2017/07/10 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
使用 Node.js 实现图片的动态裁切及算法实例代码详解
2018/09/29 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
微信小程序录音实现功能并上传(使用node解析接收)
2020/02/26 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
[01:10:57]Liquid vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
django用户登录验证的完整示例代码
2019/07/21 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
浅谈Python 参数与变量
2020/06/20 Python
Python过滤序列元素的方法
2020/07/31 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
python如何对链表操作
2020/10/10 Python
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
项目专员岗位职责
2013/12/04 职场文书
拾金不昧表扬信范文
2014/01/11 职场文书
立志成才演讲稿
2014/09/04 职场文书
银行业务授权委托书
2014/10/10 职场文书
实习科室评语
2015/01/04 职场文书
总账会计岗位职责
2015/04/02 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
如何在Python中创建二叉树
2021/03/30 Python
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers