我和我的翻譯工作,找出了Python append()
方法的行爲,結果發現:因爲我覺得這讓我爲難,意外行爲list.append
In [335]: b = [].append(1)
In [336]: b
In [337]:
In [337]: b = [].append('1')
In [338]: b
,每當我們稱之爲append()
名單上,我們添加新對象到其結束,所以不應該對空列表調用append()
(如我上面所說的那樣)給我同樣的結果,我可以有實現:
In [339]: b=[]
In [340]: b.append(1)
In [341]: b
Out[341]: [1]
我可能有一種誤解,在這裏,所以請更正我如果我錯了。
哦對。嗯,有沒有什麼理由說'apppend()'返回'None'是好的?是因爲,就像在第二個例子中,當我做了'b.append()',如果append()'沒有返回'None',那麼它會修改'b'的類型並改變它的值?因爲現在看來,如果'append()'總是返回'None',那麼在'b'上調用'append()'也會導致'b'的值更改爲'None',即使在第二個例。我的誤解是什麼? – AKKO 2014-12-05 03:47:05
我相信它的基本原理是它強制簡單和明確。你必須一次做一件事,避免大量的意大利麪陳述和副作用。 – tripleee 2014-12-05 04:29:29
@AKKO - 那你必須向Python核心開發者詢問爲什麼'append()'返回'None'的確切原因。這只是一個設計決定。我猜想是這樣,你不能把這個電話埋在另一條線內。由於'append()'改變了列表,它應該在它自己的路線上引起注意。事實上,幾乎所有在Python中改變對象的方法都遵循這個約定並返回None。 – iCodez 2014-12-05 15:54:25