我在Python中看到这样的代码:
if cnt > 0 and len(aStr) > 1:
while cnt > 0:
aStr = aStr[1:]+aStr[0]
cnt += 1
Run Code Online (Sandbox Code Playgroud)
什么+=意思?
Bas*_*ard 73
a += b基本上是相同的a = a + b,除了:
+总是返回一个新分配的对象,但+=应该(但并不一定)修改就地对象,如果它是可变的(例如,list或者dict,但int并str是不可变的).a = a + b,a评估两次.http://docs.python.org/reference/simple_stmts.html#augmented-assignment-statements
如果这是您第一次遇到+=操作员,您可能想知道为什么重要的是它可以就地修改对象而不是构建新对象.这是一个例子:
# two variables referring to the same list
>>> list1 = []
>>> list2 = list1
# += modifies the object pointed to by list1 and list2
>>> list1 += [0]
>>> list1, list2
([0], [0])
# + creates a new, independent object
>>> list1 = []
>>> list2 = list1
>>> list1 = list1 + [0]
>>> list1, list2
([0], [])
Run Code Online (Sandbox Code Playgroud)
Ste*_*202 25
a += b
Run Code Online (Sandbox Code Playgroud)
是在这种情况下一样
a = a + b
Run Code Online (Sandbox Code Playgroud)
在这种情况下,cnt + = 1意味着cnt增加1.
请注意,如果cnt> 0且len(aStr)> 1,则粘贴的代码将无限循环.
编辑:引用Carl Meyer:``[..]答案误导性大多是正确的.+和+ =之间存在微妙但非常显着的差异,请参阅Bastien的答案.''.
Google'python + = operator'会引导您访问http://docs.python.org/library/operator.html
在页面加载后搜索+ =以获得更详细的答案.
| 归档时间: |
|
| 查看次数: |
126824 次 |
| 最近记录: |