※有料会員になるとこの動画をご利用いただけます
詳しい説明を読む
#07:ミュータブルなオブジェクトが代入された変数
このチャプターでは、イミュータブルなオブジェクトが代入された変数の取り扱いの注意点を学習しましょう。
- 再代入は累算代入を除いて、オブジェクトの値を変更するわけではなく、変数が示すオブジェクトを変更する行為なので、他の変数が示す値は変わらない
def show_id(name, value):
print(f"{name}: {id(value)}")
a = [1, 2, 3]
b = a
c = [1, 2, 3]
show_id("更新前の a", a)
show_id("b", b)
show_id("c", c)
a = a + [4]
show_id("更新後の a", a)
show_id("b", b)
show_id("c", c)
print(b)
print(c)
- 累算代入の際は変数に代入されているオブジェクトの id を可能な限り変えずに値を変更するように演算がおこなわれる
def show_id(name, value):
print(f"{name}: {id(value)}")
a = [1, 2, 3]
b = a
c = [1, 2, 3]
show_id("更新前の a", a)
show_id("b", b)
show_id("c", c)
a += [4]
show_id("更新後の a", a)
show_id("b", b)
show_id("c", c)
print(b)
print(c)
ログインすると採点できます
コードの実行