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实现上传样本到virustotal并查询扫描信息的方法
Oct 05 Python
解决python2.7用pip安装包时出现错误的问题
Jan 23 Python
带你了解python装饰器
Jun 15 Python
python导入csv文件出现SyntaxError问题分析
Dec 15 Python
Python实现的FTP通信客户端与服务器端功能示例
Mar 28 Python
ActiveMQ:使用Python访问ActiveMQ的方法
Jan 30 Python
Python QQBot库的QQ聊天机器人
Jun 19 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
Aug 07 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
Aug 27 Python
pygame库实现移动底座弹球小游戏
Apr 14 Python
基于python图像处理API的使用示例
Apr 03 Python
Python快速实现一键抠图功能的全过程
Jun 29 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
用PHP制作静态网站的模板框架(一)
2006/10/09 PHP
PHP mysql与mysqli事务使用说明 分享
2013/08/17 PHP
ThinkPHP3.1新特性之G方法的使用
2014/06/19 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
PHP Redis扩展无法加载的问题解决方法
2019/08/22 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
Mootools 1.2教程 事件处理
2009/09/15 Javascript
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
2011/08/15 Javascript
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
jQuery中contents()方法用法实例
2015/01/08 Javascript
使用jQuery管理选择结果
2015/01/20 Javascript
javascript作用域问题实例分析
2015/07/13 Javascript
简单三步实现报表页面集成天气
2016/12/15 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
angularjs实现过滤并替换关键字小功能
2017/09/19 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
Vue 实现前端权限控制的示例代码
2019/07/09 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
2020/07/16 Javascript
Python中用于去除空格的三个函数的使用小结
2015/04/07 Python
Python实现的生成格雷码功能示例
2018/01/24 Python
学校运动会开幕演讲稿
2014/01/04 职场文书
高中化学教学反思
2014/01/13 职场文书
班级聚会策划书
2014/01/16 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
在职证明书范本(2014新版)
2014/09/25 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书
Python破解极验滑动验证码详细步骤
2021/05/21 Python
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
2021/06/29 Javascript