def foo(a, b):
a = 1
b[0] = 2
p, q = 100, [200, 300]
foo(p, q)
print(p, q)
>>> 100 [2, 300]
私の質問は、なぜqが変わるのですが、pはそうではありませんか?ありがとうございました!割り当てが間違っているのはなぜですか?
def foo(a, b):
a = 1
b[0] = 2
p, q = 100, [200, 300]
foo(p, q)
print(p, q)
>>> 100 [2, 300]
私の質問は、なぜqが変わるのですが、pはそうではありませんか?ありがとうございました!割り当てが間違っているのはなぜですか?
qはリストであるため、関数には「参照渡し」されます。 pは値渡しです。
ありがとうございました –
感謝の印として、それが役に立つと分かったときに答えをアップしてください。 – sophros
'b'をコピーすると思いますか?そうではありません、すべての名前は参照です。これがどのように機能するかについては、複製を参照してください。または、[リストを複製またはコピーする方法?](// stackoverflow.com/q/2612802)を参照してコピーを作成してください。 –
ここに質問をする前に、類似のものを検索してください。あまりにも多くの同様の質問があります、あなたはそれらから回答を持つことができます –
ありがとう。私は検索を試みたが間違ったキーワードを使用した。 –