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写入CSV文件的方法
Jul 08 Python
Python实现将xml导入至excel
Nov 20 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
Jun 20 Python
virtualenv实现多个版本Python共存
Aug 21 Python
python输出100以内的质数与合数实例代码
Jul 08 Python
Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】
Mar 18 Python
如何用Python破解wifi密码过程详解
Jul 12 Python
使用Python实现文字转语音并生成wav文件的例子
Aug 08 Python
python 实现dict转json并保存文件
Dec 05 Python
python爬虫开发之urllib模块详细使用方法与实例全解
Mar 09 Python
python使用yaml 管理selenium元素的示例
Dec 01 Python
教你用Python爬取英雄联盟皮肤原画
Jun 13 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 Memcached应用实现代码
2010/02/08 PHP
Laravel5.4简单实现app接口Api Token认证方法
2019/08/29 PHP
在Javascript中 声明时用"var"与不用"var"的区别
2013/04/15 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
控制input输入框中提示信息的显示和隐藏的方法
2014/02/12 Javascript
分享一个自己动手写的jQuery分页插件
2014/08/28 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
微信小程序 教程之数据绑定
2016/10/18 Javascript
如何使用headjs来管理和异步加载js
2016/11/29 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
详解Chai.js断言库API中文文档
2018/01/31 Javascript
vue axios封装及API统一管理的方法
2019/04/18 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
深入探索VueJS Scoped CSS 实现原理
2019/09/23 Javascript
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
Python简单连接MongoDB数据库的方法
2016/03/15 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
对python多线程与global变量详解
2018/11/09 Python
详解pandas删除缺失数据(pd.dropna()方法)
2019/06/25 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
使用HTML5 Canvas API中的clip()方法裁剪区域图像
2016/03/25 HTML / CSS
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
Python文件操作的面试题
2013/06/22 面试题
大学应届生求职简历的自我评价
2013/10/08 职场文书
网络信息安全承诺书
2014/03/26 职场文书
食品安全承诺书范文
2014/08/29 职场文书
庆祝新中国成立65周年“向国旗敬礼”网上签名寄语
2014/09/27 职场文书
党员查摆四风问题思想汇报
2014/10/25 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
优秀班组申报材料
2014/12/25 职场文书
商场收银员岗位职责
2015/04/07 职场文书
书法社团活动总结
2015/05/07 职场文书
2016年小学“感恩教师”主题队日活动总结
2016/04/01 职场文书
怎么禁用Windows 11快照布局? win11不使用快照布局的技巧
2021/11/21 数码科技