11
Python標準ライブラリのprofile.py
を読むと、sys.argv
を修正して正しいプロファイルを作成するための代入文sys.argv[:] = args
が出てきました。私は実際の操作でこれがsys.argv = args[:]
と異なることを理解していますが、のが同じように見えます。誰かが1つではなく他のものを使いたいという状況がありますか?そして、a[:] = b
は共通のPythonイディオムですか?スライスとの対比
更新:この特定の状況では、なぜ1つは他のものを選ぶでしょうか?あなたがa[:] = b
を使用するとき、それはあなたがa
にすでにあるものは何でも上書きすることを意味し、
ありがとうございました、私は 'A' –
は例を与えるために役立つかもしれないと、他の参照がある場合、これは違いを作ることに気づきました。 'a = b [:]'を実行すると、 'a'の_reference_を 'b'のコピーで置き換えます( 'a = b [:]'を実行すると 'x = [1、2、3]'、 'a = '; 'x'は変更されません。一方、 'a [:] = b'は' a'の内容(参照が変更されていない)を 'b'の値に置き換えます。これは' x'も変更されていることを意味します。参照結合は決して壊れていなかった。 – ShadowRanger
私は詳細を編集するように編集しました。しかし、例は良いことでなければなりません。私はそれを追加します。 –