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