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学习资料
Feb 08 Python
python赋值操作方法分享
Mar 23 Python
python基础教程之常用运算符
Aug 29 Python
Python实现删除列表中满足一定条件的元素示例
Jun 12 Python
PyQt5每天必学之切换按钮
Aug 20 Python
python获取程序执行文件路径的方法(推荐)
Apr 26 Python
详解如何用django实现redirect的几种方法总结
Nov 22 Python
Python3数字求和的实例
Feb 19 Python
Python日期时间Time模块实例详解
Apr 15 Python
如何在django中实现分页功能
Apr 22 Python
基于K.image_data_format() == 'channels_first' 的理解
Jun 29 Python
python中数字是否为可变类型
Jul 08 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
PHP中round()函数对浮点数进行四舍五入的方法
2014/11/19 PHP
Codeigniter的一些优秀特性总结
2015/01/21 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
javascript中使用new与不使用实例化对象的区别
2015/06/22 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
js改变html的原有内容实现方法
2016/10/05 Javascript
用JavaScript实现让浏览器停止载入页面的方法
2017/01/19 Javascript
微信小程序支付及退款流程详解
2017/11/30 Javascript
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
2018/01/31 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
2019/04/04 Javascript
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
python用ConfigObj读写配置文件的实现代码
2013/03/04 Python
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
2014/01/23 Python
零基础写python爬虫之爬虫编写全记录
2014/11/06 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
2015/12/08 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
pandas处理csv文件的方法步骤
2020/10/16 Python
python 检测nginx服务邮件报警的脚本
2020/12/31 Python
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
祖国在我心中演讲稿300字
2014/05/04 职场文书
企业人事任命书
2014/06/05 职场文书
小学生环保标语
2014/06/13 职场文书
自我检讨书范文
2015/01/28 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书
浅谈redis的过期时间设置和过期删除机制
2022/03/18 MySQL
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python