дальше к ответу @ juanpa.arrivillaga, и я впервые играю с модулем dis
...
может быть полезно разобрать тривиальную функцию:
def foo(a, b, c):
return (a, b, c)
, что приводит к:
2 0 LOAD_FAST 0 (a)
2 LOAD_FAST 1 (b)
4 LOAD_FAST 2 (c)
6 BUILD_TUPLE 3
8 RETURN_VALUE
Другими словами: мы проверяем, чтобы в стеке были правильные значения параметров в верхней части, затем извлекаем их все и заменяем их (ссылкой на) одиночным кортежем.
это то, как традиционно работают стековые машины , которые, я считаю, CPython (по крайней мере частично) моделируется после, например, Что означает, что python основан на стеке?