все Python 3disфункция
dis.findlinestarts()
сведения о коде
Генератор пар (смещение, номер строки): с каких инструкций байт-кода начинается каждая строка исходника.
Синтаксис
dis.findlinestarts(code)
Принимает объект кода, а не функцию, и возвращает генератор — для повторного обхода оберните в list(). Номера абсолютные, от начала файла, а первая пара обычно указывает на строку def (там стоит служебная RESUME). С 3.13 номер может быть None у инструкций без строки исходника, так что арифметику с ним проверяйте.
Примеры
# Python 3.11+
import dis
def f(x):
y = x * 2
return y
code = f.__code__
starts = list(dis.findlinestarts(code))
print([line - code.co_firstlineno for _, line in starts if line is not None]) # → [0, 1, 2]
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности