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 相关文章推荐
Python3读取zip文件信息的方法
May 22 Python
浅析Python中return和finally共同挖的坑
Aug 18 Python
Python和Java进行DES加密和解密的实例
Jan 09 Python
python批量实现Word文件转换为PDF文件
Mar 15 Python
查看python安装路径及pip安装的包列表及路径
Apr 03 Python
Python求两点之间的直线距离(2种实现方法)
Jul 07 Python
python基础 range的用法解析
Aug 23 Python
使用Pytorch来拟合函数方式
Jan 14 Python
使用python实现多维数据降维操作
Feb 24 Python
Python unittest基本使用方法代码实例
Jun 29 Python
Django如何实现密码错误报错提醒
Sep 04 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
Nov 18 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 变量定义和变量替换的方法
2009/07/30 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
微信小程序发送订阅消息的方法(php 为例)
2019/10/30 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
Jquery index()方法 获取相应元素索引值
2012/10/12 Javascript
浅析JavaScript中的常用算法与函数
2013/11/21 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
纯javascript实现四方向文本无缝滚动效果
2015/06/16 Javascript
详解JavaScript 中的 replace 方法
2016/01/01 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
关于TypeScript中import JSON的正确姿势详解
2017/07/25 Javascript
React Native react-navigation 导航使用详解
2017/12/01 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
JS中this的指向以及call、apply的作用
2018/05/06 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
深入理解 JS 垃圾回收
2019/06/03 Javascript
解决layui table表单提示数据接口请求异常的问题
2019/09/24 Javascript
python获取当前日期和时间的方法
2015/04/30 Python
python动态网页批量爬取
2016/02/14 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
2020/03/13 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
Html5页面内使用JSON动画的实现
2019/01/29 HTML / CSS
捷克时尚网上商店:OTTO
2018/03/15 全球购物
Java模拟试题
2014/11/10 面试题
企业项目策划书
2014/01/11 职场文书
学校教研活动总结
2014/07/02 职场文书
运动会广播稿200字(10篇)
2014/10/12 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
2015年求职自荐信范文
2015/03/04 职场文书
网吧员工管理制度
2015/08/05 职场文书
贷款担保书范本
2015/09/22 职场文书