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 numpy格式化打印的实例
May 14 Python
python-str,list,set间的转换实例
Jun 27 Python
Python运行不显示DOS窗口的解决方法
Oct 22 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
Jun 13 Python
python for和else语句趣谈
Jul 02 Python
Python 日期区间处理 (本周本月上周上月...)
Aug 08 Python
python实现在多维数组中挑选符合条件的全部元素
Nov 26 Python
Python中join()函数多种操作代码实例
Jan 13 Python
django admin 添加自定义链接方式
Mar 11 Python
Python中pass的作用与使用教程
Nov 13 Python
python 模拟登录B站的示例代码
Dec 15 Python
Python使用pyenv实现多环境管理
Feb 05 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
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
用Zend Encode编写开发PHP程序
2010/02/21 PHP
PHP 作用域解析运算符(::)
2010/07/27 PHP
php中使用redis队列操作实例代码
2013/02/07 PHP
基于php设计模式中工厂模式详细介绍
2013/05/15 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
用js查找法实现当前栏目的高亮显示的代码
2007/11/24 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
深入了解JavaScript中的Symbol的使用方法
2015/07/28 Javascript
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
真正好用的js验证上传文件大小的简单方法
2016/10/27 Javascript
浅析JavaScript中var that=this
2017/02/17 Javascript
微信小程序 扎金花简单实例
2017/02/21 Javascript
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
2018/12/09 Javascript
通过seajs实现JavaScript的模块开发及按模块加载
2019/06/06 Javascript
使用zrender.js绘制体温单效果
2019/10/31 Javascript
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
[04:31]2016国际邀请赛中国区预选赛妖精采访
2016/06/27 DOTA
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
2020/02/07 Python
python中with用法讲解
2020/02/07 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
2020/08/20 Python
State Cashmere官网:半零售价可持续蒙古羊绒
2020/02/26 全球购物
Happy Plugs官网:瑞典无线耳机品牌
2020/07/16 全球购物
文秘专业个人求职信
2013/12/22 职场文书
中学生爱国演讲稿
2013/12/31 职场文书
美德好少年主要事迹
2014/01/29 职场文书
政风行风评议心得体会
2014/10/21 职场文书
安娜卡列尼娜观后感
2015/06/11 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书