美文网首页python
python的魔法方法__iadd__

python的魔法方法__iadd__

作者: wilsonLwx | 来源:发表于2019-01-22 15:31 被阅读0次

对于+号操作,可变对象和不可变对象调用的都是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方法替换成了+=

相关文章

网友评论

    本文标题:python的魔法方法__iadd__

    本文链接:https://www.haomeiwen.com/subject/reoljqtx.html