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实现全角半角转换的方法
Aug 18 Python
跟老齐学Python之字典,你还记得吗?
Sep 20 Python
浅析AST抽象语法树及Python代码实现
Jun 06 Python
基于tensorflow加载部分层的方法
Jul 26 Python
python使用matplotlib库生成随机漫步图
Aug 27 Python
python2.7使用plotly绘制本地散点图和折线图
Apr 02 Python
python pandas模块基础学习详解
Jul 03 Python
python使用if语句实现一个猜拳游戏详解
Aug 27 Python
Python关键字及可变参数*args,**kw原理解析
Apr 04 Python
Python通过Pillow实现图片对比
Apr 29 Python
pandas数据分组groupby()和统计函数agg()的使用
Mar 04 Python
Python3接口性能测试实例代码
Jun 20 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
虹吸式咖啡探讨–研磨
2021/03/03 冲泡冲煮
探讨:web上存漏洞及原理分析、防范方法
2013/06/29 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
浅谈PHP中try{}catch{}的使用方法
2016/12/09 PHP
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
详解JavaScript基于面向对象之继承
2015/12/13 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
node.js的事件机制
2017/02/08 Javascript
Jquery-data的三种用法
2017/04/18 jQuery
JavaScript基于扩展String实现替换字符串中index处字符的方法
2017/06/13 Javascript
分享19个JavaScript 有用的简写写法
2017/07/07 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
Vue起步(无cli)的啊教程详解
2019/04/11 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
在Python的Django框架中创建语言文件
2015/07/27 Python
基于python内置函数与匿名函数详解
2018/01/09 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
Python抽象和自定义类定义与用法示例
2018/08/23 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
浅谈keras.callbacks设置模型保存策略
2020/06/18 Python
python如何停止递归
2020/09/09 Python
Foreo国际站:Foreo International
2018/10/29 全球购物
公务员年总结的自我评价
2013/10/25 职场文书
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
农业资源与环境专业自荐信范文
2013/12/30 职场文书
自荐书范文范例
2014/02/13 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
校园广播稿100字
2014/10/06 职场文书
区域经理岗位职责
2015/02/02 职场文书
2016个人廉洁自律承诺书
2016/03/25 职场文书