- Название файла, из которого выполняется код
- Имя класса, из которого выполняется код
- Имя метода (атрибут класса), в котором выполняется код
Как получить текущий файл, текущий класс и текущий метод с помощью Python?
Ответ 1
Вот пример каждого из них:
from inspect import stack
class Foo:
def __init__(self):
print __file__
print self.__class__.__name__
print stack()[0][3]
f = Foo()
Ответ 2
import sys
class A:
def __init__(self):
print __file__
print self.__class__.__name__
print sys._getframe().f_code.co_name
a = A()
Ответ 3
self.__class__.__name__ # name of class i'm in
для остальных модулей sys и trace
http://docs.python.org/library/sys.html http://docs.python.org/library/trace.html
Дополнительная информация: https://mail.python.org/pipermail/python-list/2001-August/096499.html а также http://www.dalkescientific.com/writings/diary/archive/2005/04/20/tracing_python_code.html
Вы хотите, чтобы это было для сообщения об ошибках, потому что модуль трассировки может обрабатывать это:
Ответ 4
Будьте очень осторожны. Рассмотрим:
class A:
pass
B = A
b = B()
Что такое "имя класса" b
здесь? Это A или B? Почему?
Дело в том, что вам не нужно знать или заботиться. Объект - это то, что он есть: его имя очень редко полезно.