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在windows下实现备份程序实例
Jul 04 Python
python去除文件中空格、Tab及回车的方法
Apr 12 Python
python中import reload __import__的区别详解
Oct 16 Python
python获取网页中所有图片并筛选指定分辨率的方法
Mar 31 Python
python opencv3实现人脸识别(windows)
May 25 Python
python求最大连续子数组的和
Jul 07 Python
python读取几个G的csv文件方法
Jan 07 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
Mar 26 Python
Python 脚本拉取 Docker 镜像问题
Nov 10 Python
Python SQLAlchemy入门教程(基本用法)
Nov 11 Python
Python小白学习爬虫常用请求报头
Jun 03 Python
浅谈keras中的keras.utils.to_categorical用法
Jul 02 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 水平的题目
2007/05/30 PHP
PHP form 表单传参明细研究
2009/07/17 PHP
PHP mb_convert_encoding文字编码的转换函数介绍
2011/11/10 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
2017/06/07 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
JavaScript 异步调用框架 (Part 4 - 链式调用)
2009/08/04 Javascript
js页面跳转常用的几种方式
2010/11/25 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
2013/11/22 Javascript
js中创建对象的几种方式示例介绍
2014/01/26 Javascript
js格式化时间和js格式化时间戳示例
2014/02/10 Javascript
js 验证身份证信息有效性
2014/03/28 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
使用JS实现导航切换时高亮显示的示例讲解
2018/08/22 Javascript
详解Vue内部怎样处理props选项的多种写法
2018/11/06 Javascript
基于JavaScript实现每日签到打卡轨迹功能
2018/11/29 Javascript
vue相关配置文件详解及多环境配置详细步骤
2020/05/19 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
安装Python的教程-Windows
2017/07/22 Python
python如何导入依赖包
2020/07/13 Python
Django跨域请求原理及实现代码
2020/11/14 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
求职意向书
2014/04/01 职场文书
房产委托公证书
2014/04/08 职场文书
缓刑人员思想汇报500字
2014/09/12 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
李白故里导游词
2015/02/12 职场文书
小升初自荐信范文
2015/03/05 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
2016年国陪研修感言
2015/11/18 职场文书
劳动合同变更协议书范本
2019/04/18 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android
聊聊redis-dump工具安装问题
2022/01/18 Redis