определить, из какого файла определена функция в python - PullRequest
0 голосов
/ 31 мая 2018

Я программно распечатываю список функций в Python.Я могу получить имя из name

for ifunc,func in enumerate(list_of_functions):
    print(str(ifunc)+func.__name__)

Как получить имя файла источника, где также определена функция?

и в случае, если функция является атрибутомобъекта, как получить тип родительского объекта?


переносимость python2 / 3 является обязательным

Ответы [ 4 ]

0 голосов
/ 31 мая 2018
func.__module__

Вернет модуль, в котором он определен

func.__globals__['__file__']

вернет весь путь к файлу, в котором он определен. Только для пользовательских функций

0 голосов
/ 31 мая 2018

Для получения имени файла просто используйте -

print(os.path.basename(__file__))

, если вам нужен полный путь к файлу, вы можете просто использовать

print __file__
0 голосов
/ 31 мая 2018

Как указано здесь https://docs.python.org/3/library/inspect.html func.__globals__ возвращает глобальное пространство имен, в котором была определена функция.

0 голосов
/ 31 мая 2018

Вы можете использовать __file__ переменную.

print(__file__)

...