Как найти реализацию конструкции потока управления для Python - PullRequest
0 голосов
/ 19 февраля 2019

Искал то же самое в SO и видел github-репозиторий CPython;но безрезультатно.Кажется, что реализация исходного кода какой-либо конструкции потока управления не видна, но неясно, почему?

В частности, необходимо получить исходный код для конструкции потока управления для CPython.

Несмотря на отсутствие знаний, все, что я мог сделать, это использовать dis module dis () для небольшого кода, что приводит к коду операции FOR_ITER, который я не понимаю.
И этот код операции не приводит меня к пониманию работы вложенной конструкции цикла for, поэтому я хотел изучить реализацию этого в исходном коде.

>import dis
 def foo():
 for i in range(3):
     for j in range(2):
         print(i,j)
 dis.dis(foo)

 3           0 SETUP_LOOP              44 (to 46)
             2 LOAD_GLOBAL              0 (range)
             4 LOAD_CONST               1 (3)
             6 CALL_FUNCTION            1
             8 GET_ITER
       >>   10 FOR_ITER                32 (to 44)
            12 STORE_FAST               0 (i)

 4          14 SETUP_LOOP              26 (to 42)
            16 LOAD_GLOBAL              0 (range)
            18 LOAD_CONST               2 (2)
            20 CALL_FUNCTION            1
            22 GET_ITER
       >>   24 FOR_ITER                14 (to 40)
            26 STORE_FAST               1 (j)

 5          28 LOAD_GLOBAL              1 (print)
            30 LOAD_FAST                0 (i)
            32 LOAD_FAST                1 (j)
            34 CALL_FUNCTION            2
            36 POP_TOP
            38 JUMP_ABSOLUTE           24
       >>   40 POP_BLOCK
       >>   42 JUMP_ABSOLUTE           10
       >>   44 POP_BLOCK
       >>   46 LOAD_CONST               0 (None)
            48 RETURN_VALUE
...