Python中操作符重载用法分析
作者:阿涵-_- 时间:2023-04-05 12:34:51
本文实例讲述了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中的ThreadLocal
echo(),print(),print_r()之间的区别?
如何在ADO服务器端利用好缓存技术?
基于Python的身份证号码自动生成程序

golang协程关闭踩坑实战记录

Python实现一个转存纯真IP数据库的脚本分享

CSS改变字体而不影响网页
MySQL Server 5.0安装教程(图解)

PHP和JavaScrip分别获取关联数组的键值示例代码
PyTorch 迁移学习实践(几分钟即可训练好自己的模型)

python 中collections的 deque使用详解
Python中的异常处理学习笔记
PHP实现设计模式中的抽象工厂模式详解

python 包之 re 正则匹配教程分享
Python爬虫框架Scrapy实战之批量抓取招聘信息

打印出python 当前全局变量和入口参数的所有属性
JavaScript中 this 指向问题深度解析
利用Python 实现分布式计算

一文弄懂MYSQL如何列转行

Django模板Templates使用方法详解
