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操作sqlite3快速、安全插入数据(防注入)的实例
Apr 26 Python
Python求解平方根的方法
Mar 11 Python
Python numpy实现数组合并实例(vstack,hstack)
Jan 09 Python
python selenium 获取标签的属性值、内容、状态方法
Jun 22 Python
使用python将请求的requests headers参数格式化方法
Jan 02 Python
Python numpy中矩阵的基本用法汇总
Feb 12 Python
Python语言检测模块langid和langdetect的使用实例
Feb 19 Python
Python终端输出彩色字符方法详解
Feb 11 Python
python实现一次性封装多条sql语句(begin end)
Jun 06 Python
基于Keras中Conv1D和Conv2D的区别说明
Jun 19 Python
python利用 keyboard 库记录键盘事件
Oct 16 Python
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
May 17 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中数组的分组排序实例
2014/06/01 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
2015/11/04 PHP
php编程每天必学之验证码
2016/03/03 PHP
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
2017/07/27 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
2019/04/05 PHP
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
2013/04/02 Javascript
asm.js使用示例代码
2013/11/28 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
慕课网题目之js实现抽奖系统功能
2017/09/19 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
[01:08:56]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第一场 2月7日
2021/03/11 DOTA
详解python单元测试框架unittest
2018/07/02 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
Python SELENIUM上传文件或图片实现过程
2019/10/28 Python
Python 私有化操作实例分析
2019/11/21 Python
使用Python实现分别输出每个数组
2019/12/06 Python
python GUI模拟实现计算器
2020/06/22 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
详解HTML5.2版本带来的修改
2020/05/06 HTML / CSS
倩碧香港官方网站:Clinique香港
2017/11/13 全球购物
临床医师个人自我评价
2014/04/06 职场文书
中华魂演讲稿
2014/05/13 职场文书
服务承诺书范文
2014/05/19 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
幼儿园感恩节活动方案2014
2014/10/11 职场文书
2014大学班主任工作总结
2014/11/08 职场文书
创先争优承诺书
2015/01/20 职场文书
三孔导游词
2015/02/05 职场文书
教育读书笔记
2015/07/02 职场文书
《詹天佑》教学反思
2016/02/20 职场文书