※有料会員になるとこの動画をご利用いただけます
詳しい説明を読む
#06:イミュータブルなオブジェクトが代入された変数
このチャプターでは、イミュータブルなオブジェクトが代入された変数の取り扱いの注意点を学習しましょう。
- 次のコードを実行すると、1 が出力される
a = 1
b = a
a += 1
print(b)
- 1 が出力されるのは、変数 a と b に代入されたオブジェクトがイミュータブルなオブジェクトだから
b = a
で変数 b は、この時点で変数 a が示すオブジェクトを教わるa += 1
で変数 a の示すオブジェクトは、値が 2 である別のオブジェクトに変更されるが、変数 b の示すオブジェクトが変更されるわけではない- 変数 b は、変数 a を見ているわけではなく、自身に代入されたオブジェクトを見ている
- これらのことは、id を使って確認できる
def show_id(name, value):
print(f"{name}: {id(value)}")
a = 1
b = a
show_id("更新前の a", a)
show_id("b", b)
a += 1
show_id("更新後の a", a)
show_id("b", b)
print(b)
ログインすると採点できます
コードの実行