lvc*_*lvc 15
是.根据类的x编码方式,短格式可以选择就地修改x,而不是创建表示总和的新对象并将其重新绑定到相同的名称.如果你有多个变量引用同一个对象,这就有了意义 - 例如,使用列表:
>>> a = b = []
>>> a += [5]
>>> a
[5]
>>> b
[5]
>>> a = a + [5]
>>> a
[5, 5]
>>> b
[5]
Run Code Online (Sandbox Code Playgroud)
这是因为在幕后,运营商调用不同的魔术方法:+电话__add__或__radd__(这是预期不修改任何他们的论据),并+=尝试__iadd__(这是不允许修改self,如果它感觉就像是)回落至之前+的逻辑,如果__iadd__ISN在那里.
它们对于整数和浮点数几乎相同,但是对于lists:
lis = lis+['foo']通过连接创建一个新的列表lis和['foo'],然后将结果赋给lis
并且:
lis += [foo] 相当于 lis.extend([foo])
>>> lis = [1,2,3]
>>> id(lis)
3078880140L
>>> lis += ['foo'] #or lis.extend(['foo'])
>>> id(lis) #same object
3078880140L
>>> lis = [1,2,3]
>>> id(lis)
3078880076L
>>> lis = lis+['foo']
>>> id(lis) #new object
3078880012L
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34921 次 |
| 最近记录: |