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中的实例方法、静态方法、类方法、类变量和实例变量浅析
Apr 26 Python
python strip() 函数和 split() 函数的详解及实例
Feb 03 Python
python 3.5下xadmin的使用及修复源码bug
May 10 Python
python好玩的项目—色情图片识别代码分享
Nov 07 Python
深入了解Python中pop和remove的使用方法
Jan 09 Python
python re模块findall()函数实例解析
Jan 19 Python
python利用插值法对折线进行平滑曲线处理
Dec 25 Python
Python 通过打码平台实现验证码的实现
May 13 Python
Python多线程模块Threading用法示例小结
Nov 09 Python
pytorch加载自己的图像数据集实例
Jul 07 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
Dec 16 Python
Django和Ueditor自定义存储上传文件的文件名
Feb 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
BBS(php &amp; mysql)完整版(七)
2006/10/09 PHP
php上的memcache和memcached两个pecl库
2010/03/29 PHP
用PHP代码给图片加水印
2015/07/01 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
php+flash+jQuery多图片上传源码分享
2020/07/27 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
页面中iframe相互传值传参
2009/12/13 Javascript
javascript使用activex控件的代码
2011/01/27 Javascript
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
2013/12/10 Javascript
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
2016/01/25 Javascript
jQuery常用知识点总结以及平时封装常用函数
2016/02/23 Javascript
js判断鼠标位置是否在某个div中的方法
2016/02/26 Javascript
php基于redis处理session的方法
2016/03/14 Javascript
jQuery购物网页经典制作案例
2016/08/19 Javascript
js 获取html5的data属性实现方法
2017/07/28 Javascript
Vue使用axios出现options请求方法
2019/05/30 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
把MySQL表结构映射为Python中的对象的教程
2015/04/07 Python
Python3.6.x中内置函数总结及讲解
2019/02/22 Python
关于pytorch多GPU训练实例与性能对比分析
2019/08/19 Python
Python集合操作方法详解
2020/02/09 Python
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
华三通信H3C面试题
2015/05/15 面试题
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
预备党员党校学习自我评价分享
2013/11/12 职场文书
会计自荐书
2013/12/02 职场文书
党员培训思想汇报
2014/01/07 职场文书
医院岗前培训心得体会
2016/01/08 职场文书
会议主持词通用版
2019/04/02 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技