0
は、私はこれらのコード行があるとします。リストからオブジェクトを削除すると、Pythonがメモリを解放しますか?
class Ab:
def __init__(self):
self.x = [i for i in range(1000)]
AbList = [Ab() for i in range(1000)]
for i in range(500):
AbList.pop()
は、私は、オブジェクトをポップした後、私の記憶を解放Pythonのでしょうか?
はい。 'pop'を呼び出した後、' AbList'は 'Ab'インスタンス(と' x'メンバー)への参照を保持しません。最終的に(すなわち、ミリ秒から数秒)、ガベージコレクタはこれらのオブジェクトに関連するメモリを解放する。プロセスマネージャーまたは 'top'を使用して' pop'を実行し、 'import gc;でガベージコレクションを強制することができます。 gc.collect() 'を実行して自分自身でこれを観察します。 – wildwilhelm