Python中的操作符重载
来源:互联网 发布:淘宝怎么查看快递公司 编辑:程序博客网 时间:2024/05/22 13:19
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中,我们在定义类的时候,可以通过实现一些函数来实现重载运算符。
例子如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
# -*- coding:utf-8 -*-
class
Test(
object
):
def
__init__(
self
, value):
self
.value
=
value
def
__add__(
self
, x):
return
self
.value *
x.value
a
=
Test(
3
)
b
=
Test(
4
)
print
a
+
b
运行结果为:12 a+b等同于a.__add__(b)
上面我们重载了加法。其他类似。
阅读全文
0 0
- Python中的操作符重载
- python 操作符重载
- python操作符重载
- Python重载操作符
- python的操作符重载
- Python的操作符重载
- C++中的操作符重载
- 模板中的操作符重载
- C++中的操作符重载
- C++中的操作符重载
- C++中的操作符重载
- C++中的操作符重载
- C++中的操作符重载
- C++中的操作符重载
- c++中的操作符重载
- C++中的操作符重载
- C++中的操作符重载
- C++中的操作符重载
- javas权威指南学习笔记(3)--语句
- 状态模式-《Head First 设计模式》
- c#使用DsoFramer实现word嵌入(winform版)
- 《大话设计模式》java实现之享元模式
- 驱动开发学习笔记1
- Python中的操作符重载
- java获取网络时间
- linux实用系统命令
- 网狐荣耀版棋牌开发搭建运营中常见问题一问一答,持续更新中
- SpringMVC构造RESTful及SpringMVC使用RESTful风格后对静态资源的处理
- 业务或产品意识
- 《神作之路》读书心得
- Python中sys.argv[]的用法简明解释
- HTML:百度首页