+ =在python中究竟做了什么?

我需要知道python中有什么+ =。 就这么简单。 我也希望能够链接到python中其他短手工具的定义。

在Python中,+ =是__iadd__特殊方法的__radd__如果__iadd__不存在, __add____radd__ 。 类的__iadd__方法可以做任何事情。 列表对象实现它,并使用它来遍历一个迭代对象,将每个元素附加到自身,就像列表的扩展方法一样。

这是一个简单的自定义类,它实现了__iadd__特殊方法。 用int初始化对象,然后可以使用+ =运算符来添加一个数字。 我在__iadd__添加了一个打印语句来显示它被调用。 此外, __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 

希望这可以帮助。

+=用variables的值添加另一个值,并将新值赋给variables。

 >>> x = 3 >>> x += 2 >>> print x 5 

-=*=/=对于减法,乘法和除法也是类似的。

+=将一个数字添加到一个variables中,改变过程中的variables本身(而+不会)。 与此类似,还有以下内容也会修改variables:

  • -= ,从variables中减去一个值,将variables设置为结果
  • *= ,将variables和一个值相乘,使结果成为variables
  • /= ,将variables除以该值,使结果成为variables
  • %= ,对variables执行模数,然后将variables设置为它的结果

可能有其他的。 我不是一个Python程序员。

它在左边添加了正确的操作数。 x += 2意味着x = x + 2

它也可以添加元素到列表 – 看到这个线程 。

这不是一个单纯的语法快捷方式。 尝试这个:

 x=[] # empty list x += "something" # iterates over the string and appends to list print(x) # ['s', 'o', 'm', 'e', 't', 'h', 'i', 'n', 'g'] 

 x=[] # empty list x = x + "something" # TypeError: can only concatenate list (not "str") to list 

这说明+ =调用iadd列表方法,但是+调用add ,它们与列表做不同的事情。

x + = 5与Python中的x = x + 5不完全相同注意这里:

 In [1]: x = [2,3,4] In [2]: y = x In [3]: x += 7,8,9 In [4]: x Out[4]: [2, 3, 4, 7, 8, 9] In [5]: y Out[5]: [2, 3, 4, 7, 8, 9] In [6]: x += [44,55] In [7]: x Out[7]: [2, 3, 4, 7, 8, 9, 44, 55] In [8]: y Out[8]: [2, 3, 4, 7, 8, 9, 44, 55] In [9]: x = x + [33,22] In [10]: x Out[10]: [2, 3, 4, 7, 8, 9, 44, 55, 33, 22] In [11]: y Out[11]: [2, 3, 4, 7, 8, 9, 44, 55] 

看到这个: 为什么+ =在列表上意外行为?

 += 

只是写作的捷径

 numbers = 1 numbers = numbers + 1 print (numbers) ## 2 

所以相反,你会写

 numbers = 1 numbers += 1 print (numbers) ## 2 

两种方法都是正确的,但是例子二可以帮助你less写一点代码

正如其他人所说,+ =运算符是一个捷径。 一个例子:

 var = 1; var = var + 1; #var = 2 

它也可以这样写:

 var = 1; var += 1; #var = 2 

所以,不要写第一个例子,你可以写第二个,这样可以很好地工作。

记住,当你用旧的计算器计算总和时,例如2和3,每次你input= 3,总计就增加了3, +=也完成了类似的工作。 例:

 >>> orange = 2 >>> orange += 3 >>> print(orange) 5 >>> orange +=3 >>> print(orange) 8