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脚本在Linux下实现部分Bash Shell的教程
Apr 17 Python
python在指定目录下查找gif文件的方法
May 04 Python
python实现多线程的两种方式
May 22 Python
python导入时小括号大作用
Jan 10 Python
tf.truncated_normal与tf.random_normal的详细用法
Mar 05 Python
python使用magic模块进行文件类型识别方法
Dec 08 Python
对python中xlsx,csv以及json文件的相互转化方法详解
Dec 25 Python
通过实例简单了解Python sys.argv[]使用方法
Aug 04 Python
Python3+Flask安装使用教程详解
Feb 16 Python
基于tensorflow __init__、build 和call的使用小结
Feb 26 Python
pandas数据分组groupby()和统计函数agg()的使用
Mar 04 Python
如何正确理解python装饰器
Jun 15 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
第十二节 类的自动加载 [12]
2006/10/09 PHP
PHPMYADMIN 简明安装教程 推荐
2010/03/07 PHP
PHP+MySQL投票系统的设计和实现分享
2012/09/23 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
2016/11/04 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
2019/05/08 PHP
javascript cookies操作集合
2010/04/12 Javascript
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
underscore之Collections_动力节点Java学院整理
2017/07/10 Javascript
JavaScript实现连连看连线算法
2019/01/05 Javascript
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
2020/03/29 Javascript
详解React的回调渲染模式
2020/09/10 Javascript
[53:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第三场 1月18日
2021/03/11 DOTA
python中list循环语句用法实例
2014/11/10 Python
Django发送html邮件的方法
2015/05/26 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
python实现键盘输入的实操方法
2019/07/16 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
环法自行车赛官方商店:Le Tour de France
2017/08/27 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
优秀驾驶员先进事迹材料
2014/05/04 职场文书
服装设计专业自荐信
2014/06/17 职场文书
体育口号大全
2014/06/18 职场文书
十佳家长事迹材料
2014/08/26 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
旷课检讨书范文
2015/01/27 职场文书
无罪辩护词范文
2015/05/21 职场文书
2016同学毕业寄语大全
2015/12/04 职场文书
公务员廉洁从政心得体会
2016/01/19 职场文书