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实现一个简单的验证码程序
Nov 03 Python
Django rest framework基本介绍与代码示例
Jan 26 Python
python实现简单flappy bird
Dec 24 Python
python实现学员管理系统
Feb 26 Python
Python 堆叠柱状图绘制方法
Jul 29 Python
利用rest framework搭建Django API过程解析
Aug 31 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
Oct 11 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
Jul 09 Python
详解python程序中的多任务
Sep 16 Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 Python
深度学习详解之初试机器学习
Apr 14 Python
基于flask实现五子棋小游戏
May 25 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 删除一个数组中的某个值.兼容多维数组!
2012/02/18 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
2013/06/27 PHP
php连接odbc数据源并保存与查询数据的方法
2014/12/24 PHP
php+xml实现在线英文词典之添加词条的方法
2015/01/23 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
对字符串进行HTML编码和解码的JavaScript函数
2010/02/01 Javascript
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
js 点击按钮弹出另一页,选择值后,返回到当前页
2010/05/26 Javascript
超级简单的jquery操作表格方法
2014/12/15 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
2015/03/11 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
2016/06/12 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
2017/10/20 jQuery
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
[02:23]DOTA2英雄基础教程 幻影长矛手
2013/12/09 DOTA
python实现目录树生成示例
2014/03/28 Python
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
Redis使用watch完成秒杀抢购功能的代码
2018/05/07 Python
使用Python函数进行模块化的实现
2019/11/15 Python
Python xpath表达式如何实现数据处理
2020/06/13 Python
英国最大的女士服装零售商:Bonmarché
2017/08/17 全球购物
公务员总结性个人自我评价
2013/12/05 职场文书
大学生学习自我评价
2014/01/13 职场文书
浪费资源的建议书
2014/03/12 职场文书
食品流通安全承诺书
2014/05/22 职场文书
助人为乐模范事迹材料
2014/06/02 职场文书
机械设计制造及其自动化专业求职信
2014/06/17 职场文书
滞留工资返还协议书
2014/10/19 职场文书
银行客户经理培训心得体会
2016/01/09 职场文书
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
2021/04/12 Python
用Python制作灯光秀短视频的思路详解
2021/04/13 Python