python私有属性和方法实例分析


Posted in Python onJanuary 15, 2015

本文实例分析了python的私有属性和方法。分享给大家供大家参考。具体实现方法如下:

python默认的成员函数和成员变量都是公开的,并且没有类似别的语言的public,private等关键词来修饰。 在python中定义私有变量只需要在变量名或函数名前加上 "__"两个下划线,那么这个函数或变量就会为私有的了。 在内部,python使用一种 name mangling 技术,将 __membername替换成 _classname__membername,所以你在外部使用原来的私有成员的名字时,会提示找不到。 比如:

class Person:
   def __init__(self):

       self.__name = 'haha'#私有属性

       self.age = 22
   def __get_name(self):##私有方法

       return self.__name
   def get_age(self):

       return self.age
person = Person()

print person.get_age()

print person.__get_name()

运行结果是:22 Traceback (most recent call last): File "E:\pythoner\zenghe\jay.py", line 38, in print person.__get_name() AttributeError: Person instance has no attribute '__get_name'

我们这里定义的__name是私有属性,__get_name()是私有方法。如果直接访问的话,会提示找不到相关的属性或者方法,但是如果你真要访问私有的相关数据的话, 也是可以访问的,严格地说,私有方法在它们的类外是可以访问的,只是不容易 处理。在 Python 中没有什么是真正私有的;在内部,私有方法和属性的名字被忽然改变和恢复,以致于使得它们看上去用它们给定的名字是无法使用的

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python time模块详解(常用函数实例讲解,非常好)
Apr 24 Python
Python多线程编程(五):死锁的形成
Apr 05 Python
Python对文件操作知识汇总
May 15 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
Jun 29 Python
python模拟登录并且保持cookie的方法详解
Apr 04 Python
Python统计单词出现的次数
Apr 04 Python
Python实现获取前100组勾股数的方法示例
May 04 Python
Python实现对特定列表进行从小到大排序操作示例
Feb 11 Python
Python3 串口接收与发送16进制数据包的实例
Jun 12 Python
python计算Content-MD5并获取文件的Content-MD5值方式
Apr 03 Python
python小白学习包管理器pip安装
Jun 09 Python
Python requests用法和django后台处理详解
Mar 19 Python
python实现堆栈与队列的方法
Jan 15 #Python
python多线程用法实例详解
Jan 15 #Python
Python中os.path用法分析
Jan 15 #Python
python静态方法实例
Jan 14 #Python
python继承和抽象类的实现方法
Jan 14 #Python
python列表操作实例
Jan 14 #Python
python操作gmail实例
Jan 14 #Python
You might like
人大复印资料处理程序_输入篇
2006/10/09 PHP
php下通过IP获取地理位置的代码(小偷程序)
2011/06/09 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
List all the Databases on a SQL Server
2007/06/21 Javascript
JavaScript 检测浏览器和操作系统的脚本
2008/12/26 Javascript
分享14个很酷的jQuery导航菜单插件
2011/04/25 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
让jQuery与其他JavaScript库并存避免冲突的方法
2013/12/23 Javascript
JQuery下拉框应用示例介绍
2014/04/23 Javascript
node.js中的fs.open方法使用说明
2014/12/17 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
jQuery Mobile动态刷新页面样式的实现方法
2016/05/28 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
2016/06/22 Javascript
jQuery 中ajax异步调用的四种方式
2016/06/28 Javascript
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
Vue绑定内联样式问题
2018/10/17 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
JavaScript享元模式原理与用法实例详解
2020/03/09 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
使用python将mdb数据库文件导入postgresql数据库示例
2014/02/17 Python
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
2018/01/15 Python
教你用一行Python代码实现并行任务(附代码)
2018/02/02 Python
python实现内存监控系统
2021/03/07 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
详解如何用HTML5 Canvas API控制图片的缩放变换
2016/03/22 HTML / CSS
大学毕业生自我鉴定
2013/11/05 职场文书
实习自我评价怎么写
2013/12/02 职场文书
创先争优承诺书范文
2014/03/31 职场文书
医生辞职信范文
2015/03/02 职场文书
垂直极限观后感
2015/06/08 职场文书
公司周年庆典致辞
2015/07/30 职场文书
Python中time标准库的使用教程
2022/04/13 Python