Pythonプログラミングにおいて重要なことに「型付けがダイナミック」ということがある。 この特性のおかげで 宣言なしで変数を使える 型の違うオブジェクトを同じ変数に代入できる ダイナミックな型付けは以下のようにして実現される 変数はオブジェクトへのリファレンスのみ保持 型情報(値、可能な演算など)はオブジェクト自身が保持 変数とオブジェクトが独立して存在し、リファレンスによって結ばれる方式のため、 一つのオブジェクトを異なる変数から参照する状況が発生する(共有リファレンス) 共有リファレンスを扱う場合、オブジェクトがmutableな場合代入には注意が必要。 そして、各々のオブジェクトについて、 変数からのリファレンスが0になった段階で、自動的にオブジェクトが削除される(ガーベージコレクション) 変数とオブジェクトの関係 変数とオブジェクトは以下のような関係になっており、別々なメモリ領域に