它是这样的意思是什么意思:
self.something += ('somethin',)
Run Code Online (Sandbox Code Playgroud)
"+ ="是什么,逗号是什么意思?
表达式a += b是简写a = a + b,其中a和b可以是数字,字符串,元组或列表(但两者必须是相同的类型).
逗号('x',)表示这是单个元素的元组,'x'.如果逗号不存在,则只是'x'括号之间.
+=是加法和赋值合二为一(有时称为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
Run Code Online (Sandbox Code Playgroud)
您还可以用这种方式执行其他运算,例如-=、*=、/=、&=(按位与)、|=(按位或)、^=(按位异或)、%=(mod)、**=(指数)。
('something',)是一个元组。('something')(不带逗号)在分组中使用括号,有点像('some' + 'thing')or (a + b)。为了在语法上区分单成员元组和分组,Python 使用逗号。
Python 有一个运算符可以为名称赋值,它是=.
该语言还支持许多其他运算符,例如+, -,**用于在对象的特殊方法中定义的操作。
虽然+是添加东西的数学符号,但可以自定义以执行任何您想要的操作。
有时您想进行操作并使用相同的名称存储它。对于这些情况,您可以使用就地运算符,这些运算符只是您习惯使用的普通运算符加上=符号。
对于不可变对象(数字、字符串、元组...),您不能进行就地更改,因为...它们是不可变的。因此,就地方法与后跟赋值的普通方法完全相同。
对于可变对象,区别非常明显:
就地添加:
>>> a = []
>>> b = a
>>> b += [1,2]
>>> a
[1, 2]
Run Code Online (Sandbox Code Playgroud)
添加和分配:
>>> a = []
>>> b = a
>>> b = b + [1,2]
>>> a
[]
Run Code Online (Sandbox Code Playgroud)
看?对象本身使用列表的就地添加进行了转换,但在另一种情况下,创建了一个新对象。
对于您的另一个问题,逗号是元组分隔符。
a = (1) # Just number 1 inside parenthesis
a = (1,) # A tuple with one element
Run Code Online (Sandbox Code Playgroud)