Это мой debug.py:
class Debug:
@classmethod
def file_name(self):
import os
return os.path.basename(__file__)
это мой test.py:
print Debug.file_name()
Это напечатает debug.py, пока я хочу получить test.py. Что я должен делать?
Вы можете использовать inspect.stack
:
import inspect
import os
class Debug:
@classmethod
def file_name(self):
caller = inspect.stack()[1]
return os.path.basename(caller[1])
self
дляclassmethod
всегда заменяется наcls
, также нет нужды в параметре, может бытьstaticmethod
или простая функция вместо метода