- 911 名前:デフォルトの名無しさん [2009/09/19(土) 09:48:33 ]
- 循環参照してしまうとそのオブジェクトはプロセスの
終了まで解放されない? class ClassA(object): def __init__(self): import sys sys.stderr.write("ClassA.__init__(...) %s\n" % str(self)) def __del__(self): import sys sys.stderr.write("ClassA.__del__(...) %s\n" % str(self)) class ClassC(object): def __init__(self): import sys sys.stderr.write("ClassC.__init__(...) %s\n" % str(self)) self.a1 = ClassA() self.a2 = ClassA() self.a1.a2 = self.a2 self.a2.a1 = self.a1 def __del__(self): import sys sys.stderr.write("ClassC.__del__(...) %s\n" % str(self)) これで ClassC のインスタンスを作ると, ClassA.__del__ は永遠に呼び出されない. せめてプロセスの終了時には呼び出されると思ってた.
|

|