__del__関数
インスタンスは、いずれかの変数から参照されている期間メモリ上に存在するので、不要になるタイミングは、
1) del関数で、オブジェクトIDを格納した変数が削除されたとき
2) どの変数からも参照されなくなったとき
である。
1)のケースの実例
code:python
class Hoge:
def __del__(self):
print('インスタンスは削除された')
hoge1 = Hoge()
del(hoge1)
del関数を用いて変数hoge1を削除することにより、インスタンスがどこからも参照されなくなる。
2)の例
code:python
class Hoge:
def __del__(self):
print('インスタンスは削除された')
hoge1 = Hoge()
hoge1 = 7
つまり、変数hoge1の内容が新たに生成した整数型オブジェクト「7」のオブジェクトIDによって上書きされることにより、それまで参照されていたHoe型インスタンスはどこからも参照されなくなる。