Вот мой код :
Код: Выделить всё
import dis
def sum(a, b):
c = a + b
print(f"the sum of a and b is {c}")
sum(3, 45)
dis.dis(sum)
Код: Выделить всё
2 RESUME 0

Что я понимаю:
Байт-код начинается со строки 2, а затем переходит к строке 3.
Строка 3 — это «суперинструкция», загружающая значения a и b в стек, выполняет сложение, а затем сохраняет результат в c в массиве по индексу.
Мое замешательство:
В строке LOAD_FAST_LOAD_FAST 1 (a, b), я понимаю, что инструкция LOAD_FAST_LOAD_FAST загружает в стек значения a и b, но что означает 1 перед (a, b)? Я знаю, что STORE_FAST 2 (c) означает, что значение c сохраняется в массиве локальных переменных по индексу 2, но что именно означает число 1 в инструкции LOAD_FAST 1? Что означает 0 в BINARY_OP?
Может кто-нибудь помочь мне понять этот байт-код шаг за шагом? Меня это очень сбивает с толку.
Подробнее здесь: https://stackoverflow.com/questions/793 ... what-do-th