11
當讀取python標準庫的profile.py
時,我遇到了指定語句sys.argv[:] = args
,該指令用於修改sys.argv
以使得正在執行的程序可以查看正確的命令行參數。我明白這與實際操作中的sys.argv = args[:]
不同,但有效它們看起來與我一樣。有人想要使用一種而不使用另一種的情況嗎?而且是a[:] = b
一個常見的python成語嗎?指定vs從片段
更新:在這個特定的情況下,爲什麼會選擇一個在另一個? (來源可以在profile.py
的main
功能中找到)
謝謝你,我意識到,這使得如果有以'了' –
其它參考資料可能有助於舉一個例子的差異。如果'x = [1,2,3]'和'a = x'(所以它們引用相同的列表),則執行'a = b [:]'替換'a'中的_reference_和'b '; 'x'不變。另一方面,'a [:] = b'用'b'中的值替換'a'(其引用不變)的_contents_,這意味着'x'也被修改;參考鏈接從未打破。 – ShadowRanger
我編輯添加更多細節。但一個例子應該是一件好事。我會添加它。 –