- Nombre del archivo desde donde el código se está ejecutando
- Nombre de la clase de donde el código se está ejecutando
- Nombre del método (atributo de la clase) donde el código se está ejecutando
Respuesta
Aquí es un ejemplo de cada uno:
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
para el resto de los módulos sys y traza
http://docs.python.org/library/sys.html http://docs.python.org/library/trace.html
algo más de información: https://mail.python.org/pipermail/python-list/2001-August/096499.html y http://www.dalkescientific.com/writings/diary/archive/2005/04/20/tracing_python_code.html
querías que para el informe de errores ya que el módulo de rastreo puede con eso:
import sys
class A:
def __init__(self):
print __file__
print self.__class__.__name__
print sys._getframe().f_code.co_name
a = A()
Be muy cuidado. Considere:
class A:
pass
B = A
b = B()
¿Cuál es el 'nombre de clase' de b
aquí? ¿Es A o B? ¿Por qué?
El punto es que no debería necesitar saber o preocuparse. Un objeto es lo que es: su nombre rara vez es útil.
El nombre de clase es 'A' ya que' b' es ** Instancia ** de 'B' que a su vez es ** referencia ** a' A' que es ** Clase **. – ted
Para usuarios finales, seguramente; pero extremadamente útil cuando se depura, como para un manejador de excepciones o similar para informar dónde está. Podría redactar un bonito mensaje de error para decir lo mismo, pero a menudo incluiría esta información de todos modos, en cuyo caso parece una pérdida escribirlo cada vez. Además, para construir (por ejemplo) un paquete de registro general, es inmensamente útil poder proporcionarlo automáticamente. Si su argumento se sostuvo, ¿no se aplicaría también a isinstance(), que seguramente es importante y útil? – TextGeek
- 1. En Python, ¿cómo obtengo el marco actual?
- 2. ¿Cómo obtengo la fecha actual?
- 3. ¿Obtener el nombre de la clase actual?
- 4. Python: determine el módulo actual actual (no __main__)
- 5. ¿Cómo obtengo el DOM actual con Selenium Java 2.8?
- 6. ¿Cómo obtengo la identificación de catageory actual?
- 7. Cómo obtengo la fecha actual en Cocoa
- 8. ¿Cómo obtengo la posición actual de intercalación?
- 9. ¿Cómo encuentro el directorio actual?
- 10. Método del hilo actual java
- 11. ¿Cómo sudo el proceso actual?
- 12. Método recomendado para ubicar el script actual?
- 13. RenderAction no encuentra el método de acción en el controlador actual en el área actual
- 14. ¿Cómo obtengo el color actual de un fragmento?
- 15. ¿Cómo obtener el directorio actual?
- 16. Rake y directorio actual
- 17. ¿Cómo obtengo el usuario actual en Perl de manera portátil?
- 18. Obtener el nombre del método actual
- 19. ¿Cómo obtengo el primer día del mes actual?
- 20. ¿Cómo obtengo el nombre del directorio actual en Ruby?
- 21. Cómo actualizar el estado actual con VisualStateManager
- 22. ¿Cómo obtengo el desplazamiento UTC actual (zona horaria)?
- 23. ¿Cómo obtener el lienzo actual?
- 24. Cómo ejecutar IRB.start en el contexto de la clase actual
- 25. ¿Cómo obtengo el espacio de nombres actual en Rake?
- 26. ¿Cómo obtengo el estado actual de Bloq Mayús en VB.NET?
- 27. Cómo obtengo el directorio actual en un servicio web
- 28. ¿Cómo obtengo el año actual utilizando SQL en Oracle?
- 29. Busque el archivo actual en IntelliJ
- 30. Obteniendo el nombre de clase actual incluyendo el paquete
¿Está tratando de ejecutarlo desde la línea de comandos? Obviamente no está definido entonces; intente crear un archivo con el código y hacer el nombre de archivo python; funcionará como se espera. –
ejecútelo desde el archivo – mtasic85
¿Por qué no inspeccionar.currentframe? – tzot