python中的运算符重载_Python中操作符重载用法分析

本文详细介绍了Python中的操作符重载,通过重载特殊方法如__add__、__repr__等,可以让用户定义的类实例在使用内置操作符时拥有自定义的行为。重载不仅包括算术操作符,还包括索引、函数调用等,使得对象更加灵活且易于理解。示例中展示了如何通过__getitem__方法重载索引操作。

本文实例讲述了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程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值