Python中操作符重载用法分析


Posted in Python onApril 29, 2016

本文实例讲述了Python中操作符重载用法。分享给大家供大家参考,具体如下:

类可以重载python的操作符

操作符重载使我们的对象与内置的一样。__X__的名字的方法是特殊的挂钩(hook),python通过这种特殊的命名来拦截操作符,以实现重载。 python在计算操作符时会自动调用这样的方法,例如:

如果对象继承了__add__方法,当它出现在+表达式中时会调用这个方法。通过重载,用户定义的对象就像内置的一样。

在类中重载操作符

1、操作符重载使得类能拦截标准的python操作。
2、类可以重载所有的python的表达式操作符。
3、类可以重载对象操作:print,函数调用,限定等。
4、重载使得类的实例看起来更像内置的。
5、重载是通过特殊命名的类方法来实现的。

方法名        重载的操作说明        调用表达式
__init__    构造函数        创建对象:class()
__del__        析构函数        释放对象的时候
__add__        “+”            x + y
__or__        “|”            x | y
__repr__    打印,转换        print x, `x`
__call__    函数调用        X()
__getattr__    属性引用        x.undefined
__getitem__    索引            x[key],for循环,in测试
__setitem__    索引赋值        x[key] = value
__getslice__    分片            x[low:high]
__len__        长度            len(x)
__cmp__        比较            x == Y ,x < y
__radd__    右边的操作符"+"        非实例 + x

例子:

__getitem__拦截了所有的索引操作

>>> class indexer:
def __getitem__(self,index):
return index ** 2
>>> x = indexer()
>>> for i in range(5):
print x[i]  #x[i]将调用__getitem__(x,i)
0
1
4
9
16

更多关于Python相关内容可查看本站专题:《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python使用os模块的os.walk遍历文件夹示例
Jan 27 Python
基于python编写的微博应用
Oct 17 Python
MySQL中表的复制以及大型数据表的备份教程
Nov 25 Python
利用 Monkey 命令操作屏幕快速滑动
Dec 07 Python
redis之django-redis的简单缓存使用
Jun 07 Python
Selenium(Python web测试工具)基本用法详解
Aug 10 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
Jun 17 Python
python 实现将多条曲线画在一幅图上的方法
Jul 07 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
Jul 11 Python
Pycharm+Python+PyQt5使用详解
Sep 25 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
Apr 07 Python
Python内置函数locals和globals对比
Apr 28 Python
Python中绑定与未绑定的类方法用法分析
Apr 29 #Python
Python过滤列表用法实例分析
Apr 29 #Python
Python松散正则表达式用法分析
Apr 29 #Python
python中私有函数调用方法解密
Apr 29 #Python
简单学习Python time模块
Apr 29 #Python
Python中MySQL数据迁移到MongoDB脚本的方法
Apr 28 #Python
python遍历目录的方法小结
Apr 28 #Python
You might like
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
NiftyCube——轻松实现圆角边框
2007/02/20 Javascript
event.keyCode键码值表 附只能输入特定的字符串代码
2009/05/15 Javascript
一些技巧性实用js代码小结
2009/10/14 Javascript
JS 判断undefined的实现代码
2009/11/26 Javascript
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
form表单action提交的js部分与html部分
2014/01/07 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
js判断手机号是否正确并返回的实现代码
2017/01/17 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
微信小程序实现购物页面左右联动
2019/02/15 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
2016/09/21 Python
python基础教程之匿名函数lambda
2017/01/17 Python
轻松实现TensorFlow微信跳一跳的AI
2018/01/05 Python
基于pycharm导入模块显示不存在的解决方法
2018/10/13 Python
python 列表推导式使用详解
2019/08/29 Python
Python 导入文件过程图解
2019/10/15 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
python输出国际象棋棋盘的实例分享
2020/11/26 Python
Python创建文件夹与文件的快捷方法
2020/12/08 Python
Stefania Mode美国:奢华设计师和时尚服装
2018/01/07 全球购物
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
DNA基因检测和分析:23andMe
2019/05/01 全球购物
汽车检测与维修应届毕业生求职信
2013/10/19 职场文书
毕业生护理专业个人求职信范文
2014/01/04 职场文书
《自然之道》教学反思
2014/02/11 职场文书
挂职自我鉴定
2014/02/26 职场文书
产品质量保证书
2014/04/29 职场文书
导游词之藏龙百瀑景区
2019/12/30 职场文书
详解MongoDB排序时内存大小限制与创建索引的注意事项
2022/05/06 MongoDB