все 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Сообщить о неточности