Pythonのデストラクター・__del__()

2021/01/26PythonPythonの基本

記事内に広告が含まれています。

Pythonのクラスにはクラスが破棄される時に呼ばれるデストラクター「__del__()」があります。

Pythonのデストラクター__del__()

Pythonのクラスにはコンストラクター__new__()、__init__()の対になる機能を持つデストラクターの__del__()が存在します。

デストラクターはインスタンスが破棄されるタイミングで自動で呼び出されます。

通常はクラスで終了処理が必要な場合などに__del__を使って行います。

class MyClass():
    def __new__( cls ) :
        self = super().__new__( cls )
        print( "__new__()  myId={}".format( id( self )))
        return self

    def __init__( self ) :
        print( "__init__()  myId={}".format( id( self )))
        
        self.myVariable = 10

    def __del__( self ) :
        print( "__del__()  myId={}".format( id( self )))
        

cl1 = MyClass()
cl2 = MyClass()

上記の実行結果は

__new__()  myId=1297822089864
__init__()  myId=1297822089864
__new__()  myId=1297822090056
__init__()  myId=1297822090056
__del__()  myId=1297822089864
__del__()  myId=1297822090056

となり、起動したPythonプログラムが終了するタイミングでデストラクターの__del__()が呼び出されていることがわかります。

まとめ

Pythonのクラスにはコンストラクター__new__()、__init__()の対になる機能を持つデストラクターの__del__()が存在し、インスタンスオブジェクトが破棄されるタイミングで自動で呼び出されます。

システムトラストでは一緒に働いていただける仲間を募集中です。
株式会社システムトラスト

システムトラストでは、システムエンジニア、プログラマーなどを随時募集中です。気軽にご相談ください。

お問合せ