[python] ukončení interpretu, zničení objektu
Radek Kaňovský
rk na dat.cz
Úterý Červen 6 06:25:43 CEST 2006
On Sun, Jun 04, 2006 at 11:43:56PM +0200, Jan Janech wrote:
> Objekt triedy este nieje odstraneny, ale iba symbol M je nastaveny na
> hodnotu None...
> Dost zaujimave spravanie, po tom ako som si po dvoch rokoch zvykol, ze v
> pythone vsetko ide ako ma :)
>
> class M:
>
> b = 0
>
> def __del__(self):
>
> print "self.class =", self.__class__
>
> print "M =", M
>
> print "M2 =", M2
>
> a2 = M()
> M2 = M
Ja myslim, ze tohle chovani je v poradku. Metoda __del__ se muze
spolehnout v podstate jenom na jmeno `self'. Globalni objekty uz mohou
byt odalokovane. Pokud potrebuju nejaky externi objekt v metode __del__,
je potreba pouzit nejaky trik a objekt si "pribalit" k funkci:
import sys
class M:
def __del__():
_sys = sys # _sys je cellvar
def __del__(self):
print 'SYS', _sys
__del__ = __del__()
Radek Kaňovský
Další informace o konferenci Python