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中ConfigParse模块的用法
Sep 29 Python
Python列表生成器的循环技巧分享
Mar 06 Python
python根据开头和结尾字符串获取中间字符串的方法
Mar 26 Python
在Django中进行用户注册和邮箱验证的方法
May 09 Python
Python通过命令开启http.server服务器的方法
Nov 04 Python
python中字符串比较使用is、==和cmp()总结
Mar 18 Python
python清除字符串前后空格函数的方法
Oct 21 Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 Python
Python通过2种方法输出带颜色字体
Mar 02 Python
Django-rest-framework中过滤器的定制实例
Apr 01 Python
Numpy实现卷积神经网络(CNN)的示例
Oct 09 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
Nov 20 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常用Output和ptions/Info函数集介绍
2013/06/19 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
利用PHP如何实现Socket服务器
2015/09/23 PHP
php中file_get_contents()函数用法实例
2019/02/21 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
2020/08/17 PHP
js TextArea的选中区域处理
2010/12/28 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
node.js中的console用法总结
2014/12/15 Javascript
js实现图片点击左右轮播
2015/07/08 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
2015/10/09 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
2015/12/23 Javascript
AngularJS 中的事件详解
2016/07/28 Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
2016/12/14 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
2017/03/15 Javascript
vue组件之Alert的实现代码
2017/10/17 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
jQuery实现的点击按钮改变样式功能示例
2018/07/21 jQuery
Node.js模拟发起http请求从异步转同步的5种用法
2018/09/26 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
2019/09/09 Javascript
JS实现滑动插件
2020/01/15 Javascript
使用Python读取大文件的方法
2018/02/11 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
2020/09/21 Python
python删除文件、清空目录的实现方法
2020/09/23 Python
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
巴西本土电商平台:Americanas
2020/06/21 全球购物
俄罗斯厨房产品购物网站:COOK HOUSE
2021/03/15 全球购物
介绍一下Linux中的链接
2016/06/05 面试题
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
2015/11/18 面试题
2014社区三八妇女节活动总结
2014/03/01 职场文书
中秋晚会活动方案
2014/08/31 职场文书
重阳节标语大全
2014/10/07 职场文书
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python
Go 中的空白标识符下划线
2022/03/25 Golang