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类定义和类继承详解
May 08 Python
python使用urllib2提交http post请求的方法
May 26 Python
Python守护进程用法实例分析
Jun 04 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
Jun 04 Python
多版本Python共存的配置方法
May 22 Python
python版飞机大战代码分享
Nov 20 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
Dec 12 Python
Python3如何判断三角形的类型
Apr 12 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
Apr 28 Python
PyQt5 QDockWidget控件应用详解
Aug 12 Python
python 经纬度求两点距离、三点面积操作
Jun 03 Python
Opencv实现二维直方图的计算及绘制
Jul 21 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 trim 去除空字符的定义与语法介绍
2010/05/31 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
js parsefloat parseint 转换函数
2010/01/21 Javascript
Javascript 中的 && 和 || 使用小结
2010/04/25 Javascript
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
2011/05/28 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
jquery 选取方法都有哪些
2014/05/18 Javascript
使用JavaScript链式编程实现模拟Jquery函数
2014/12/21 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
Jquery滑动门/tab切换实现方法完整示例
2020/06/05 jQuery
通过mod_python配置运行在Apache上的Django框架
2015/07/22 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
Django 对IP访问频率进行限制的例子
2019/08/30 Python
python3下pygame如何实现显示中文
2020/01/11 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
计算机专业个人求职信范例
2013/09/23 职场文书
中文专业学生自我评价范文
2014/02/06 职场文书
安全生产实施方案
2014/02/23 职场文书
《大海那边》教学反思
2014/04/09 职场文书
《少年王冕》教学反思
2014/04/11 职场文书
某某同志考察材料
2014/05/28 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫
win10电脑关机快捷键是哪个 win10快速关机的几种方法
2022/08/14 数码科技