変更可能な型を関数またはメソッドに渡し、その関数またはメソッド内で不注意に変更すると、外側のスコープでも変更され、非常に悪いバグを見つけるのが困難になる可能性があります。
ミュータブルな型を渡すときに業界で受け入れられている方法は何ですか?
たとえば、次のリストを使用できます。
def func(myList):
myList = myList[:]
その後、その関数内にmyList
は、安全に変更できるコピーが作成されます。copy
モジュールを使用する場合も同様です。しかし、これはそれを行うための最良または標準的な方法ですか?
それとも、他のことをする前に、すべての引数をローカルスコープ変数に再割り当てするだけですか? 引数の名前を変更する、面倒な余分なステップのようなもの...