Ha a Pythonban is elvégzed ugyanazt a munkát, amit C++-ban, (nevezetesen: garantálni, hogy ne legyenek körkörös hivatkozások), akkor a Python* is megadja azt, amit a C++ (azaz: automatikusan, determinisztikus sorrendben meghívott destruktorok).
A különbség ott vagy, hogy ha nem végzed el ezt a munkát, akkor C++-ban memory leaket csinálnál egyik destruktor sem fog soha lefutni, Python pedig így is fel tudja takarítani a memóriát, és még a destruktorokat is meghívja valamilyen sorrendben.
Szóval azt mondod, hogy jobb a memory leak és a soha le nem futó destruktor, mint a nem-determinisztikus futási sorrend?
------
* Mindez a CPythonra vonatkozik. A nyelv specifikációja** nem írja elő ezt a determinisztikus viselkedést, viszont a referencia-implementáció úgy van megírva, hogy annál ez adott.
** Nincs is specifikáció.