ただし、インプレース演算子は、イミュータブルなターゲット、つまり変更できないオブジェクト(文字列、数値、タプルなど)に対しては使用できません。イミュータブルなオブジェクトは、一度作成されると変更することができず、新しいオブジェクトを作成して更新する必要があります。
以下に、異なるタイプのイミュータブルなオブジェクトに対してインプレース演算子が使用できない例を示します。
-
文字列の例:
s = "Hello" s += " World" # これはエラーになります
-
数値の例:
x = 5 x *= 2 # これはエラーになります
-
タプルの例:
t = (1, 2, 3) t += (4, 5) # これはエラーになります
上記のコードは、インプレース演算子を使用して変数の値を更新しようとするため、エラーが発生します。これは、イミュータブルなオブジェクトが変更不可能であるためです。
イミュータブルなオブジェクトを更新する場合は、新しいオブジェクトを作成して代入演算子を使用する必要があります。例えば、以下のようになります。
-
文字列の例:
s = "Hello" s = s + " World"
-
数値の例:
x = 5 x = x * 2
-
タプルの例:
t = (1, 2, 3) t = t + (4, 5)
これらの方法を使用すると、イミュータブルなオブジェクトを更新することができます。
以上が、イミュータブルなターゲットに対してインプレース演算子が使用できない理由と、代わりに使用できる方法の例です。