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正则表达式常用函数总结
Jun 24 Python
Python3.X 线程中信号量的使用方法示例
Jul 24 Python
pandas数据预处理之dataframe的groupby操作方法
Apr 13 Python
Python基于pandas实现json格式转换成dataframe的方法
Jun 22 Python
python实现逐个读取txt字符并修改
Dec 24 Python
Python学习笔记之变量、自定义函数用法示例
May 28 Python
Python range与enumerate函数区别解析
Feb 28 Python
Python如何在windows环境安装pip及rarfile
Jun 15 Python
keras的三种模型实现与区别说明
Jul 03 Python
Python如何进行时间处理
Aug 06 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
Oct 20 Python
python 基于PYMYSQL使用MYSQL数据库
Dec 24 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怎样调用MSSQL的存储过程
2006/10/09 PHP
PHP可变函数的使用详解
2013/06/14 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
2016/07/18 PHP
js异或加解密效果代码
2008/06/25 Javascript
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
js转义字符介绍
2013/11/05 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
JavaScript动态添加列的方法
2015/03/25 Javascript
利用n工具轻松管理Node.js的版本
2017/04/21 Javascript
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
详解vite+ts快速搭建vue3项目以及介绍相关特性
2021/02/25 Vue.js
Python编码时应该注意的几个情况
2013/03/04 Python
python实现代理服务功能实例
2013/11/15 Python
python3.4用函数操作mysql5.7数据库
2017/06/23 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
python3实现随机数
2018/06/25 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
python3学习之Splash的安装与实例教程
2018/07/09 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
应届生妇产科护士求职信
2013/10/27 职场文书
酒店led欢迎词
2014/01/09 职场文书
开工庆典邀请函范文
2014/01/16 职场文书
环保倡议书300字
2014/05/15 职场文书
公司副总经理岗位职责
2014/10/01 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话全文
2014/10/25 职场文书
2014年店长工作总结
2014/11/17 职场文书
中学生自我评价2015
2015/03/03 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书