- Name der Datei aus dem Code
- Name der Klasse ausgeführt wird, von dem Code
- Name der Methode (Attribut der Klasse) ausgeführt wird, wenn der Code ausgeführt wird
Antwort
Hier ein Beispiel für jeden ist:
from inspect import stack
class Foo:
def __init__(self):
print __file__
print self.__class__.__name__
print stack()[0][3]
f = Foo()
self.__class__.__name__ # name of class i'm in
für den Rest der sys und Trace-Module
http://docs.python.org/library/sys.html http://docs.python.org/library/trace.html
Einige weitere Informationen: https://mail.python.org/pipermail/python-list/2001-August/096499.html und http://www.dalkescientific.com/writings/diary/archive/2005/04/20/tracing_python_code.html
haben Sie wollen, dass es für die Fehlerberichterstattung, da die Rückverfolgungsmodul damit umgehen kann:
import sys
class A:
def __init__(self):
print __file__
print self.__class__.__name__
print sys._getframe().f_code.co_name
a = A()
Seien Sie sehr vorsichtig. Betrachte:
class A:
pass
B = A
b = B()
Was ist der 'Klassenname' von b
hier? Ist es A oder B? Warum?
Der Punkt ist, Sie sollten nicht wissen oder kümmern. Ein Objekt ist das, was es ist: Sein Name ist sehr selten nützlich.
Der Klassenname ist 'A', da' b' eine ** Instanz ** von 'B' ist, die wiederum eine ** Referenz ** zu' A' ist, was eine ** Klasse ** ist. – ted
Endbenutzer sicher; aber extrem nützlich beim Debuggen - wie bei einem Exception-Handler oder ähnlich, um zu berichten, wo es ist. Du könntest eine nette Fehlermeldung schreiben, um das gleiche zu sagen, aber es hat diese Information häufig trotzdem, in diesem Fall scheint es eine Verschwendung, es jedes Mal zu tippen. Um beispielsweise ein allgemeines Protokollierungspaket zu erstellen, ist es sehr nützlich, dies automatisch bereitstellen zu können. Wenn Ihre Argumentation zutrifft, würde das nicht auch für isinstance() gelten, was sicherlich wichtig und nützlich ist? – TextGeek
- 1. Wie bekomme ich die aktuelle Tastatur (aktuelle IME) über ADB
- 2. Wie bekomme ich die aktuelle Zeilennummer?
- 3. Erhalten aktuelle Klasse
- 4. Wie bekomme ich die aktuelle offene Dateizeile in Python?
- 5. Wie bekomme ich die aktuelle Tastatursprache?
- 6. Wie bekomme ich die aktuelle ProcessID?
- 7. AppleScript Wie bekomme ich die aktuelle Bildschirmauflösung?
- 8. Wie bekomme ich die aktuelle Zeit?
- 9. Wie bekomme ich die aktuelle Caret-Position?
- 10. Delphi: Wie bekomme ich (aktuelle Codezeile, aktuelle Einheit, aktuelle Funktion) ohne Assertion zu verwenden?
- 11. Wie bekomme ich aktuelle URL mit Smarty
- 12. UITextView bekomme die aktuelle Zeile
- 13. jqGrid bekomme aktuelle rowid
- 14. PHPUnit und WebDriver - Wie bekomme ich die aktuelle URL?
- 15. Wie bekomme ich das aktuelle Verzeichnis?
- 16. Wo finde ich aktuelle, aktuelle Wechselkurse?
- 17. Wie bekomme ich iPhones aktuelle Orientierung?
- 18. Wie bekomme ich das aktuelle Arbeitsverzeichnis mit Python 3?
- 19. woocommerce wie bekomme ich aktuelle Kategorie
- 20. Ruby aktuelle Klasse
- 21. Ruby - Scoping-Methode ruft aktuelle Klasse auf
- 22. Wie bekomme ich aktuelle Bildschirmdetails in javafx?
- 23. Wie bekomme ich das aktuelle Datum?
- 24. Wie bekomme ich aktuelle Minuten php
- 25. Wie bekomme ich die aktuelle UTC 0 Zeit mit D?
- 26. Wie bekomme ich die aktuelle Zeit mit der Chiffre
- 27. Wo bekomme ich eine aktuelle OpenGL32.lib?
- 28. Wie bekomme ich die aktuelle Stunde mit Cocoa?
- 29. Vim: aktuelle Datei ausführen?
- 30. Bootstrap Datetime aktuelle Datum und die aktuelle Uhrzeit standardmäßig
Versuchen Sie, es über die Befehlszeile auszuführen? Es ist offensichtlich dann nicht definiert; Versuchen Sie, eine Datei mit dem Code zu erstellen und den Python-Dateinamen zu erstellen - es wird wie erwartet funktionieren. –
Führen Sie es aus Datei – mtasic85
Warum nicht inspect.currentframe? – tzot