Pythonでオブジェクトを宣言し後でオブジェクトの削除をしてみます。
■Python
今回は、Google Colaboratoryを用います。Google ColaboratoryのPythonのバージョンは、記事作成時点では「3.7.13」となっています。
■オブジェクトを宣言し後でオブジェクトの削除をする
では、クラスを宣言し、クラス内にオブジェクトを作成するため、オブジェクトを作成するプロセスであるインスタンス化を行います。行った後に、プロパティ(属性)を削除してみます。
■コード
class fruits: a = "バナナ" object_test = fruits() print(object_test.a) del object_test print(object_test)
今回はfruits(フルーツ)というクラスを宣言し、クラスのインスタンスを作成します。(クラスのオブジェクト)。今回はaというクラスに存在する変数(属性)内に「バナナ」という値を格納します。
格納後、クラスは、オブジェクトを作成するためのテンプレート(設計図)ですので、object_testという変数を用意し、その中にfruits()を格納します。これでオブジェクトを作成するプロセスである「インスタンス化」を行いました。
インスタンス化を行った後に、object_testのaという変数(属性)の値をドット演算子( . )を用いて指定し、print()で出力してみます。出力後、オブジェクトのプロパティ(属性)を削除します。削除のために、delキーワードを使用し、「object_test」オブジェクトを削除します。
削除後、「object_test」オブジェクトをprint()で出力してみます。
■実行・検証
このセルを保存し、Google Colaboratory上で、セルを実行してみます。
実行してみると、delキーワードを使用し、「object_test」オブジェクトを削除したため、「NameError: name ‘object_test’ is not defined(定義されていません)」と出力されることが確認できました。
なお、クラスのオブジェクトを削除した後、それにバインドされている(相互に関連付けられている)オブジェクトの名前は削除されるが、オブジェクトは削除されたため、名前が割り当てられずにメモリ内に存在し続けることになります。しかし、その後、ガベージ コレクションと呼ばれるプロセスによって自動的に破棄されます。ガベージコレクションは、Pythonがメモリ ロケーション(記憶場所)から使用されなくなったオブジェクトを定期的に破棄し、メモリスペースを再利用するプロセス)。
コメント