Python Glossary English

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

inspect.getsourcelines()

исходный код

Возвращает пару: список строк исходника объекта (с переводами строк) и номер первой строки в файле.

Синтаксис

inspect.getsourcelines(object) -> tuple[list[str], int]

Номер строки считается с 1, а у модуля он 0 — так функция отличает «весь файл». Строки уже содержат '\n', поэтому печатают их через ''.join(), а не '\n'.join(), иначе появятся пустые строки. Первая строка декорированной функции — строка декоратора, и, как getsource(), функция идёт по __wrapped__. Ошибки те же: OSError без файла и TypeError для встроенных объектов. Недокументированные getlineno и indentsize — его внутренние помощники.

Примеры

import inspect, sys
def area(w, h):
    return w * h
lines, start = inspect.getsourcelines(area)
print(start, len(lines))  # → 2 2
print(lines[0], end='')  # → def area(w, h):
print(inspect.getsourcelines(sys.modules[__name__])[1])  # → 0

См. также

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

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