Message157714
| Author |
Jim.Jewett |
| Recipients |
Jim.Jewett, amaury.forgeotdarc, asvetlov, dstanek, kristjan.jonsson, loewis, pitrou, rhettinger, stutzbach, tim.peters |
| Date |
2012年04月07日.02:24:39 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<CA+OGgf7stY05T5bdgsAJhqEtHDXAtenhb3vpVtT-Lf4hCAKhQg@mail.gmail.com> |
| In-reply-to |
<CAMMy=Osx_JF881vVZbQkZ9qn7qNd=Hs11eBys6pnGsaWWCtGMA@mail.gmail.com> |
| Content |
On Fri, Apr 6, 2012 at 4:03 PM,
Daniel Stutzbach <stutzbach@google.com> added the comment:
>> __del__ methods do run, even if an object was collected by the cycle
>> detector. And they can't do any harm that couldn't also be done by a C
>> finalizer.
> No, if an object with a __del__ method is part of a cycle, it is not
> collected. The objects get appended to gc.garbage instead.
> See: http://docs.python.org/py3k/library/gc.html#gc.garbage
They can still be collected if there is only one object with a __del__
method in the cycle.
(Whether the code actually does that, it appears not to at the moment,
and I won't swear by by own memory of 2.3 era code.) |
|