详解python中操作符重载用法分析

本文实例讲述了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中操作符重载用法分析相关文章请关注php中文网!

Posted in 未分类

发表评论