2

変更可能な型を関数またはメソッドに渡し、その関数またはメソッド内で不注意に変更すると、外側のスコープでも変更され、非常に悪いバグを見つけるのが困難になる可能性があります。

ミュータブルな型を渡すときに業界で受け入れられている方法は何ですか?

たとえば、次のリストを使用できます。

def func(myList):
    myList = myList[:]

その後、その関数内にmyListは、安全に変更できるコピーが作成されます。copyモジュールを使用する場合も同様です。しかし、これはそれを行うための最良または標準的な方法ですか?

それとも、他のことをする前に、すべての引数をローカルスコープ変数に再割り当てするだけですか? 引数の名前を変更する、面倒な余分なステップのようなもの...

4

2 に答える 2

0

反復可能なものを使用するため、通常は を使用list()します。

def func(iterable):
    myList = list(iterable)

func を呼び出すことができるようになり、Python 3 でリストが返さfunc(zip(x, y))れないことを心配する必要がなくなりました。zip

于 2013-09-21T02:53:32.523 に答える