对于+号操作,可变对象和不可变对象调用的都是add操作
对于+=号操作,可变对象调用add,不可变对象调用的是iadd(不可变对象没有iadd) iadd是原地修改
本篇用简单的代码演示iadd的用法
定义一个简单的类
class B:
def __init__(self):
self.list1 = []
def __iadd__(self, other):
self.list1.append(other)
return self
定义两个个简单的函数
def a():
pass
def c():
pass
尝试用class B的实例去追加函数a和b,看结果会怎么样?
b = B()
b += a
b += c
print(b.list1)
最终输出的结果是
[<function a at 0x10d7f3e18>, <function c at 0x10d8d0598>]
我将a,b函数添加到class B中,可以在class B中对a,b函数进行一些操作,在外部等于就是将append方法替换成了+=