RE: [python] (Ne)uvol?ování prom?nných p?i zpracování vyjímky

Jan Matejka matejka na datasys.cz
Středa Leden 22 09:30:12 CET 2003


Díky za odpověď, 
řešil jsem to tak, že sem dal příslušné try-except do všech relevantních
vnořených funkcí a tam objekt (do funkce předaný jako parametr)
uvolňoval a vyjímku poslal dál přes raise bez parametrů. Je to funkční
ale hnusné.
Podle pythoní dokumentace jde zřejmě o známý jev, protože je
doporučováno například soubory po vyjímce explicitně zavírat. Takže jsem
do objektu dodělal metodu close a zachytávám vyjímku pouze v nejvyšší
úrovni. Objekt se sice uvolní někdy později ale prakticky to nevadí.

Zdraví Jan Matějka


-----Original Message-----
From: python-bounces na py.cz [mailto:python-bounces na py.cz] On Behalf Of
Jan Samohyl
Sent: Tuesday, January 21, 2003 10:05 PM
To: Konference uľivatelů Pythonu a spol.
Subject: Re: [python] (Ne)uvol?ování prom?nných p?i zpracování vyjímky


>    Vázení, mám takovýto zacátecnický dotaz:
> 
>    Kdyz v Pythonu 2.22 dojde k vyjímce ve vnorené funkci, pak není
objekt
>    predávaný jako parametr funkce uvolnen pri uvolnení základní
promenné,
>    vekteré byl objekt ulozen. Ke skutecnému uvolnení (volání
>    __del__) dojde az pri dalsím volaní vnorené funkce.
> 
>    Delá to na me dojem, jako by objekt byl drzen nejakou pomocnou
>    promennou fungující jako parametr vnorené funkce.

To mi nepripada zrovna jako zacatecnicky dotaz. Moc o tom problemu ale
nevim. Na druhou stranu, z konference pythonu mam 
takovy nejasny dojem, ze je to celkem bezna vec, ze se uvolnovani
objektu nedeje vzdy v okamziku, kdy by to clovek cekal.

>    Je nejaký trik jak takovéto objekty explicitne uvolnit ? Zkousel
jsem
>    metody z gc - neúspesne .

Myslim, ze bude lepe zeptat se primo vyvojaru na python mailing listu.

S pozdravem Jan Samohyl



Další informace o konferenci Python