-2
num2
が変更されていないのに、text
関数を呼び出すときにnum1
が影響を受けるのはなぜですか?Pythonの可変/不変関数
def text(null1, null2) :
null1 += [7]
null2 = [8]
num1 = [2,3]
num2 = [4,5]
text(num1,num2)
print(num1)
print(num2)
num2
が変更されていないのに、text
関数を呼び出すときにnum1
が影響を受けるのはなぜですか?Pythonの可変/不変関数
def text(null1, null2) :
null1 += [7]
null2 = [8]
num1 = [2,3]
num2 = [4,5]
text(num1,num2)
print(num1)
print(num2)
null1 += [7]
リストnull1
を変更します。あなたの場合は、リストnum1
を引数として渡します。
しかし:
null2 = [8]
は、新しいリストを作成します。関数の内部では、新しいローカル変数を作成します。したがって、num2
は変更されません。
'a + = b'は' a = a + b'と同じではないためです。 – BrenBarn
追加すると、同じリストに追加されますが、割り当てすると新しいリストが作成されます。 –