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实现将一个正整数分解质因数的方法分析
Dec 14 Python
Python操作Redis之设置key的过期时间实例代码
Jan 25 Python
python如何重载模块实例解析
Jan 25 Python
解决Python3.5+OpenCV3.2读取图像的问题
Dec 05 Python
对python for 文件指定行读写操作详解
Dec 29 Python
python对列进行平移变换的方法(shift)
Jan 10 Python
在python中用url_for构造URL的方法
Jul 25 Python
详解django实现自定义manage命令的扩展
Aug 13 Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 Python
Python request操作步骤及代码实例
Apr 13 Python
Python中的Cookie模块如何使用
Jun 04 Python
python爬取新闻门户网站的示例
Apr 25 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捕获Fatal error错误的方法
2014/06/11 PHP
php switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
CI框架常用函数封装实例
2016/11/21 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
在IE模态窗口中自由查看HTML源码的方法
2007/03/08 Javascript
js或css文件后面跟参数的原因说明
2010/01/09 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
javascript数组遍历的方法实例分析
2016/09/13 Javascript
jquery滚动条插件(可以自定义)
2016/12/11 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
Vue.js实现列表清单的操作方法
2017/11/15 Javascript
vue.js element-ui tree树形控件改iview的方法
2018/03/29 Javascript
对vue中v-if的常见使用方法详解
2018/09/28 Javascript
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
Python通过Pygame绘制移动的矩形实例代码
2018/01/03 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
Pandas 同元素多列去重的实例
2018/07/03 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
Python3操作YAML文件格式方法解析
2020/04/10 Python
TensorFlow2.0使用keras训练模型的实现
2021/02/20 Python
HTML5实现Notification API桌面通知功能
2016/03/02 HTML / CSS
面向对象设计的原则是什么
2013/02/13 面试题
平面设计的岗位职责
2013/11/08 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
关于青春的演讲稿
2014/05/05 职场文书
2014年新教师工作总结
2014/11/08 职场文书
2015年社区妇联工作总结
2015/04/21 职场文书
简单聊聊TypeScript只读修饰符
2022/04/06 Javascript
分享Python异步爬取知乎热榜
2022/04/12 Python