[python] ukončení interpretu, zničení objektu

Jan Martinek honza na dp.fce.vutbr.cz
Sobota Červen 3 20:31:36 CEST 2006


 >> tento program
>>
>> class M:
>>    b = 0
>>    def __del__(self):
>>      M.b
>>
>> a1 = M()
>>
>> vyhodí výjimku
>>
>> Exception exceptions.AttributeError: "'NoneType' object has no attribute
>> 'b'" in <bound method M.__del__ of <__main__.M instance at
>> 0x2aaaaab50a28>> ignored
>>
> 
> rekl bych ze tam i tak mas chybu v M.__del__
> 

Jakou chybu? Jestli máš na mysli to
       M.b
tak se domnívám, že to chyba není. Ale nechci se o tom přít, protože i 
když ten řádek nahradím

       M.b = 0

tak to při ukončení programu taky vyhazuje tu výjimku.

Zjistil jsem další věc - když kód vepíšu do intepretu, tak při ukončení 
výjimku nevyhodí. Zatímco když vytvořím soubor s tímtéž kódem a ten 
spustím, tak to výjimku vyhodí. Děje se tak na Linuxu ve verzích
Pythonu 2.4.2 i 2.4.3.

--
Jan Martinek


Další informace o konferenci Python