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编写Windows Service服务程序
Jan 04 Python
python实现简易内存监控
Jun 21 Python
pandas 使用均值填充缺失值列的小技巧分享
Jul 04 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
Jul 07 Python
python中property属性的介绍及其应用详解
Aug 29 Python
python manage.py runserver流程解析
Nov 08 Python
django数据模型(Model)的字段类型解析
Dec 25 Python
python函数调用,循环,列表复制实例
May 03 Python
Python ConfigParser模块的使用示例
Oct 12 Python
django中cookiecutter的使用教程
Dec 03 Python
python实现简单倒计时功能
Apr 21 Python
python实战之一步一步教你绘制小猪佩奇
Apr 22 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程序的方法
2009/03/09 PHP
PHP链表操作简单示例
2016/10/15 PHP
php数组指针操作详解
2017/02/14 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
JQuery中html()方法使用不当带来的陷阱
2011/04/07 Javascript
jQuery(非HTML5)可编辑表格实现代码
2012/12/11 Javascript
根据当前时间在jsp页面上显示上午或下午
2014/08/18 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
2016/01/04 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
2016/12/29 Javascript
flag和jq on 的绑定多个对象和方法(必看)
2017/02/27 Javascript
Vue动态实现评分效果
2017/05/24 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
JavaScript实现更换背景图片
2019/10/18 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
2019/11/07 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
Python实现简单状态框架的方法
2015/03/19 Python
Python中__name__的使用实例
2015/04/14 Python
python实现连接mongodb的方法
2015/05/08 Python
基于Python闭包及其作用域详解
2017/08/28 Python
基于Python3.6+splinter实现自动抢火车票
2018/09/25 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
python实现用类读取文件数据并计算矩形面积
2020/01/18 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
战友聚会邀请函
2014/01/18 职场文书
银行开业庆典方案
2014/02/06 职场文书
会展策划与管理专业大学生职业生涯规划
2014/02/07 职场文书
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang