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 可爱的大小写
Sep 06 Python
使用python实现baidu hi自动登录的代码
Feb 10 Python
Python Web框架Flask下网站开发入门实例
Feb 08 Python
Python中使用copy模块实现列表(list)拷贝
Apr 14 Python
python简单猜数游戏实例
Jul 09 Python
Python冒泡排序注意要点实例详解
Sep 09 Python
Python中collections模块的基本使用教程
Dec 07 Python
python 执行文件时额外参数获取的实例
Dec 18 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
Aug 17 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
Sep 03 Python
python3 os进行嵌套操作的实例讲解
Nov 19 Python
python将下载到本地m3u8视频合成MP4的代码详解
Nov 24 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
单位速度在实战中的运用
2020/03/04 星际争霸
一个程序下载的管理程序(三)
2006/10/09 PHP
php中定时计划任务的实现原理
2013/01/08 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
Laravel重定向,a链接跳转,控制器跳转示例
2019/10/22 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
2020/01/22 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
javascript开发中因空格引发的错误
2010/11/08 Javascript
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
基于jQuery实现的文字按钮表单特效整理
2014/12/07 Javascript
分析了一下JQuery中的extend方法实现原理
2015/02/27 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
hovertree插件实现二级树形菜单(简单实用)
2016/12/28 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
玩转vue的slot内容分发
2018/09/22 Javascript
小程序实现订单倒计时功能
2019/04/23 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
2019/12/04 Javascript
用JS实现一个简单的打砖块游戏
2019/12/11 Javascript
python使用marshal模块序列化实例
2014/09/25 Python
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
python join方法使用详解
2019/07/30 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
pytorch查看通道数 维数 尺寸大小方式
2020/05/26 Python
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
物业经理求职自我评价
2013/09/22 职场文书
函授药学自我鉴定
2014/02/07 职场文书
中药专业毕业自荐书范文
2014/02/08 职场文书
2015年幼儿园毕业感言
2014/02/12 职场文书
新春文艺演出主持词
2014/03/27 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书
《怀念母亲》教学反思
2016/02/19 职场文书