Hallo Leute,
gibt es einen Befehl o.Ä. um den Funktions/Methodennamen auszugeben in der etwas ausgeführt wird?
Danke
Babsi
Funktionsnamen herausfinden?
Hoi Babsi,
die Frage ist mir nicht ganz klar. Meinst Du das:
Oder meinst Du etwas Anderes?
Gruss,
Christian
die Frage ist mir nicht ganz klar. Meinst Du das:
Code: Alles auswählen
>>> def foo():
... print foo.__name__
...
>>> foo()
foo
Gruss,
Christian
ja so ungefähr,
ich möchte in einer funktion daten in ein logfile schreiben, dort soll auch der funktionsname der ausgeführt wird eingefügt werden. das kann ich ja so übergeben oder gibts dafür ne elegantere lösung?
danke!
babsi
ich möchte in einer funktion daten in ein logfile schreiben, dort soll auch der funktionsname der ausgeführt wird eingefügt werden. das kann ich ja so übergeben oder gibts dafür ne elegantere lösung?
danke!
babsi
Hi
na, den Funktionsnamen kannst Du natürlich auch auf einer anderen Ebene erhalten:
Im Grunde genommen aber weißt Du ohnehin den Namen der Funktion, die Du aufrufst, oder?
Gruß,
Christian
na, den Funktionsnamen kannst Du natürlich auch auf einer anderen Ebene erhalten:
Code: Alles auswählen
>>> foo.__name__
'foo'
Gruß,
Christian
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Du kannst das hier nutzen:
Mit den üblichen Warnungen (_getframe ist Implementationsdetail, also nicht auf andere Pythons übertragbar.)
Code: Alles auswählen
def f():
log()
def log():
print sys._getframe(1).f_code.co_name
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Ansonsten werfe ich noch sys.settrace ein: http://paste.pocoo.org/show/930/
TUFKAB – the user formerly known as blackbird
- nkoehring
- User
- Beiträge: 543
- Registriert: Mittwoch 7. Februar 2007, 17:37
- Wohnort: naehe Halle/Saale
- Kontaktdaten:
Oho... nette Funktion. Dieses _getframe steht ja nichtmal im normalen Docstring (achja, der _ am Anfang verhindert das, nicht war?)birkenfeld hat geschrieben:Du kannst das hier nutzen:
Mit den üblichen Warnungen (_getframe ist Implementationsdetail, also nicht auf andere Pythons übertragbar.)Code: Alles auswählen
def f(): log() def log(): print sys._getframe(1).f_code.co_name
Danke dafuer, auch wenn ich hier nur so mal gelesen habe

[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2