在Python中它是什么意思+ =

时间:2011-10-11 03:50:38

标签: python syntax

这样的意思是什么:

self.something += ('somethin',)

“+ =”是什么以及逗号含义是什么?

4 个答案:

答案 0 :(得分:7)

表达式a += ba = a + b的简写,其中ab可以是数字,字符串,元组或列表(但两者都必须是相同的类型)。

('x',)中的逗号表示这是单个元素的元组'x'。如果逗号不存在,则在括号之间只有'x'

答案 1 :(得分:2)

Python有一个运算符可以为名称赋值,它是=

该语言还支持许多其他运算符,例如+-**,用于对象的特殊方法中定义的操作。

虽然+是添加内容的数学符号,但可以自定义以执行任何操作。

有时您想要进行操作并使用相同的名称存储它。对于这些情况,您有就地操作符,这些操作符只是您使用的普通操作符加上=符号。

对于不可变对象(数字,字符串,元组,......),您不能进行就地更改,因为......它们是不可变的。因此,就地方法与分配后的常规方法完全相同。

对于可变对象,差异很多清晰:

就地添加:

>>> a = []
>>> b = a
>>> b += [1,2]
>>> a
[1, 2]

添加并指定:

>>> a = []
>>> b = a
>>> b = b + [1,2]
>>> a
[]

请参阅?对象本身已使用就地添加列表进行转换,但在另一种情况下,创建了一个新对象。


对于您的其他问题,逗号是元组分隔符。

a = (1)   # Just number 1 inside parenthesis
a = (1,)  # A tuple with one element

答案 2 :(得分:1)

+= is addition and assignment into one(有时称为iadd或就地添加)。它与a = a + x

相同
a = 4
a += 5  # add 5 to a, and assign the result into a
b = 4
b = b + 5   # this does the same thing as +=
print a  # prints out 9
print b  # prints out 9

您还可以使用此样式执行其他操作,例如-=*=/=&=(按位和),|=(按位)或),^=(按位xor),%=(mod),**=(指数)。


('something',)tuple('something')(不使用逗号)在分组中使用括号,有点像('some' + 'thing')(a + b)。为了区分单成员元组和语法分组,Python使用逗号。

答案 3 :(得分:-2)

这是Python中的后递增方法。 num + = 1与num = num + 1相同。