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基于递归算法实现的走迷宫问题
Aug 04 Python
浅谈Python处理PDF的方法
Nov 10 Python
Python使用wxPython实现计算器
Jan 30 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
Jul 13 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
Oct 26 Python
对python For 循环的三种遍历方式解析
Feb 01 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
Jun 17 Python
Python 实例方法、类方法、静态方法的区别与作用
Aug 14 Python
Python 过滤错误log并导出的实例
Dec 26 Python
Python文件操作基础流程解析
Mar 19 Python
Python pandas如何向excel添加数据
May 22 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
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
PHP 中的批处理的实现
2007/06/14 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
laravel自定义分页效果
2017/07/23 PHP
php post换行的方法
2020/02/03 PHP
PHP实现限制域名访问的实现代码(本地验证)
2020/09/13 PHP
js中的window.open返回object的错误的解决方法
2009/08/15 Javascript
Extjs学习笔记之九 数据模型(上)
2010/01/11 Javascript
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
jquery统计复选框选中示例
2013/11/05 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
获取3个数组不重复的值的具体实现
2013/12/30 Javascript
ajax+jQuery实现级联显示地址的方法
2015/05/06 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
javascript实现在网页中运行本地程序的方法
2016/02/03 Javascript
鼠标点击input,显示瞬间的边框颜色,对之修改与隐藏实例
2016/12/26 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
2017/04/13 Javascript
JQuery 封装 Ajax 常用方法(推荐)
2017/05/21 jQuery
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
vue实现局部刷新的实现示例
2019/04/16 Javascript
实现elementUI表单的全局验证的方法步骤
2019/04/29 Javascript
js常见遍历操作小结
2019/06/06 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
layer.alert自定义关闭回调事件的方法
2019/09/27 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
python re正则表达式模块(Regular Expression)
2014/07/16 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
Python生成器常见问题及解决方案
2020/03/21 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
教师实习自我鉴定
2013/12/14 职场文书
个人年终总结开头
2015/03/06 职场文书
博士论文答辩开场白
2015/06/01 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书