Pythonの「+=」と「+」の違い

611 ワード

通常、「a+=b」は「a=a+b」に等しいと考えられていますが、実際にはFor exampleではありません.
num = [100]
def add(num):
  num += num
  print(num)
add(num)
print(num)

出力結果:
[100, 100]
[100, 100]

「num+=num」を「num=num+num」に変更すると、出力結果の違いを見ることができます.
num = [100]
def add(num):
  num = num + num
  print(num)
add(num)
print(num)

出力結果:
[100, 100]
[100]

例1では、「num+=num」を用いてグローバル変数の値を変更したことがわかる.一方,例2では,‘num=num+num’を用いたが,グローバル変数の値は変更されなかった.
可変タイプの場合、両方の方法で新しいオブジェクトが作成されます.可変タイプの場合、+=新しいオブジェクトは作成されません.元のオブジェクトで操作されます.+新しいオブジェクトが作成されます