Hallo,
Wie kann ich innerhalb einer Klasse ermitteln woraus die Klasse aufgerufen wurde?
Ich weiß das ich das parentobjekt beim Aufruf mit übergeben könnte, aber ich möchte es gerne ohne spezielle Übergabe ermitteln.
Geht das?
Danke!
Parentobjekt ermitteln?
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ich weiß auch nicht wie
Ich nutzte aber für Debugging Zwecke für sowas inspect.stack() um heraus zu feinden von wo aus etwas aufgerufen wurde:
Aber das ist bestimmt nicht das was du suchst
Ich nutzte aber für Debugging Zwecke für sowas inspect.stack() um heraus zu feinden von wo aus etwas aufgerufen wurde:
Code: Alles auswählen
for stack_frame in inspect.stack():
# Im stack vorwärts gehen, bis außerhalb dieser Datei
filename = stack_frame[1]
lineno = stack_frame[2]
if filename != __file__:
break
filename = "...%s" % filename[-25:]
fileinfo = "%-25s line %3s: " % (filename, lineno)
Ist auf jeden etwas was nicht in Produktionscode gehört. Wenn sich eine Funktion bei gleichen Argumenten anders verhält je nachdem von wo sie aufgerufen wird, dann stimmt im allgemeinen etwas mit dem Entwurf nicht. Die Funktionen sind dann nicht richtig entkoppelt und ausserdem ist das ein reichlich überraschendes Verhalten für jemanden der diese Funktion benutzt.
Warum? ``inspect.stack`` fängt doch nicht mit _ oder __ an. Ich benutze öfter viele Funktionen aus ``inspect`` Oder war der Satz auf den OP bezogen?BlackJack hat geschrieben:Ist auf jeden etwas was nicht in Produktionscode gehört.
Vielen Dank für die Antwoten!
Ich meinte aber nicht aus welchen Pythonskript in welcher Zeile etwas aufgerufen wird, sondern von welchem Objekt aus (z.B. aus welchem Modul, Klasse, Funktion).
Ich meinte aber nicht aus welchen Pythonskript in welcher Zeile etwas aufgerufen wird, sondern von welchem Objekt aus (z.B. aus welchem Modul, Klasse, Funktion).
Gruß, Harry
War auf den OP bezogen. Was jens geschrieben hat, ist ja ziemlich eindeutig Debugging-Code.
@HarryH: Wozu brauchst Du das denn?
@HarryH: Wozu brauchst Du das denn?