Python Glossary English

все Python 3inspectфункция

inspect.getsourcefile()

исходный код

Путь к файлу .py, где определён объект, или None, если исходник найти не удалось.

Синтаксис

inspect.getsourcefile(object) -> str | None

Два разных «нет»: для встроенного модуля или функции на C — TypeError, а для объекта без файла на диске (код из exec(), модуль только с .pyc) — молчаливый None. Путь абсолютный и зависит от машины и виртуального окружения, поэтому сравнивать его строкой в тестах нельзя. У пакета это путь к __init__.py.

Примеры

import inspect, json, sys
def f():
    pass
print(inspect.getsourcefile(f))  # → ? путь к example.py
print(inspect.getsourcefile(json).endswith('__init__.py'))  # → True
ns = {}
exec('def z(): pass', ns)
print(inspect.getsourcefile(ns['z']))  # → None
try:
    inspect.getsourcefile(sys)
except TypeError as e:
    print(e)  # → <module 'sys' (built-in)> is a built-in module

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности