[Python-de] Re: [Python-de] python objekt löschen

Siggy Brentrup bsb at winnegan.de
Thu Aug 9 11:15:05 EDT 2001


"Andreas Jung" <andreas at zope.com> writes:

> mit "del obj" löschst Du die Referenz, aber nicht durch "obj=None".

Das bedarf wohl einer Korrektur, del obj loescht die Referenz auf das
durch obj bezeichnete Objekt und zusaetzlich den Namen obj aus dem
(globalen o. lokalen) Namespace, obj=None loescht die Referenz aber
nicht den Namen, der bezeichnet jetzt ein anderes Objekt.

>>> obj = [1,2,3]
>>> obj
[1, 2, 3]
>>> obj = None
>>> obj
>>> del obj
>>> obj
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
NameError: name 'obj' is not defined

> __del__() wird in dem Object aufgerufen, wenn es mit "del obj" zerstört
> wird.

__del__() wird nur aufgerufen, wenn der interne Referenzzaehler auf 0
ist, je nach Python-Version ist aber nicht garantiert, dass es
ueberhaupt aufgerufen wird.

Statt die von einem Objekt belegten Resourcen freizugeben, ist es i.A.
sicherer eine selbstdefinierte Methode aufzurufen.

Danke
  Siggy
-- 
Siggy Brentrup - bsb at winnegan.de - http://www.winnegan.de/
****** ceterum censeo javascriptum esse restrictam *******



More information about the Python-de mailing list