Feststellen ob Object besteht?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
wdsl
User
Beiträge: 35
Registriert: Donnerstag 22. Februar 2007, 16:26

Hi,
kann man irgendwie feststellen ob ein Objekt besteht ohne darauf zuzugreifen?

Beispiel ich erstelle eine Objekt in Abhängigkeit eines Objekts
Bei einem anderen Ereignis muss ich darauf zugreifen allerdings geht das nur wenn das andere Besteht.

Gibt es dafür eine Methode?

vielen Dank
wdsl
BlackJack

Auf Objekte die nicht existieren kann man auch nicht zugreifen.

Kann es sein, dass Du einen Namen zum Beispiel an `None` binden möchtest und später an ein anderes Objekt? Dann kann man überprüfen, ob der Name noch an `None` gebunden ist, oder schon an ein Objekt mit dem man etwas mehr anstellen kann.

Ansonsten bitte ein Beispiel.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Code: Alles auswählen

try:
    from foo.bar import Baz
except ImportError:
    objekt gibts nicht

try:
    Bar
except NameError:
    objekt gibts nicht
TUFKAB – the user formerly known as blackbird
wdsl
User
Beiträge: 35
Registriert: Donnerstag 22. Februar 2007, 16:26

Hi,
habs hinbekommen habs jetzt mit

Code: Alles auswählen

except AttributeError:
gemacht da es ein Object in einer Klassen ist.

mfg
wdsl
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Das wäre dann ein/e Objekt-/Instanz-Attribut/-Variable. Deswegen auch AttributeError.
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

wdsl hat geschrieben:Hi,
kann man irgendwie feststellen ob ein Objekt besteht ohne darauf zuzugreifen?

Beispiel ich erstelle eine Objekt in Abhängigkeit eines Objekts
Bei einem anderen Ereignis muss ich darauf zugreifen allerdings geht das nur wenn das andere Besteht.

Gibt es dafür eine Methode?
Hi!

Hmm, klingt verwirrend, aber für mich irgendwie nach einem simplen vars?

Code: Alles auswählen

>>> vars()
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None}
>>> print "l" in vars()
False
>>> l = 15
>>> vars()
{'__builtins__': <module '__builtin__' (built-in)>, 'l': 15, '__name__': '__main__', '__doc__': None}
>>> print "l" in vars()
True
Geht auch mit jedem anderen Objekt als dem globalen Namespace per "vars(Obj)"

Grüße,
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Antworten