= 到底是做什么的?

新手上路,请多包涵

我需要知道 += 在 Python 中的作用。就这么简单。我也希望链接到 Python 中其他速记工具的定义。

原文由 Salvatore Mucciolo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 421
1 个回答

In Python, += is sugar coating for the __iadd__ special method, or __add__ or __radd__ if __iadd__ isn ‘现在。 __iadd__ 类的方法可以做任何它想做的事。列表对象实现它并使用它来迭代一个可迭代对象,以与列表的扩展方法相同的方式将每个元素附加到自身。

这是一个简单的自定义类,它实现了 __iadd__ 特殊方法。您使用 int 初始化对象,然后可以使用 += 运算符添加一个数字。我在 __iadd__ 中添加了一条打印语句,以表明它已被调用。另外, __iadd__ 应该返回一个对象,所以我返回了它本身加上在这种情况下有意义的其他数字。

 >>> class Adder(object):
        def __init__(self, num=0):
            self.num = num

        def __iadd__(self, other):
            print 'in __iadd__', other
            self.num = self.num + other
            return self.num

>>> a = Adder(2)
>>> a += 3
in __iadd__ 3
>>> a
5

原文由 Bryan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题