Python Glossary English

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