File tree 1 file changed +30
-7
lines changed
1 file changed +30
-7
lines changed Original file line number Diff line number Diff line change 15
15
.. code-block :: python
16
16
17
17
>> > def countdown (n ):
18
- ... while n > 0 :
19
- ... print (' T-minus' , n)
20
- ... n -= 1
21
- ... print (' Blastoff!' )
18
+ ... while n > 0 :
19
+ ... print (' T-minus' , n)
20
+ ... n -= 1
21
+ ... print (' Blastoff!' )
22
22
...
23
23
>> > import dis
24
24
>> > dis.dis(countdown)
25
- ...
25
+ 2 0 SETUP_LOOP 30 (to 32 )
26
+ >> 2 LOAD_FAST 0 (n)
27
+ 4 LOAD_CONST 1 (0 )
28
+ 6 COMPARE_OP 4 (> )
29
+ 8 POP_JUMP_IF_FALSE 30
30
+
31
+ 3 10 LOAD_GLOBAL 0 (print )
32
+ 12 LOAD_CONST 2 (' T-minus' )
33
+ 14 LOAD_FAST 0 (n)
34
+ 16 CALL_FUNCTION 2
35
+ 18 POP_TOP
36
+
37
+ 4 20 LOAD_FAST 0 (n)
38
+ 22 LOAD_CONST 3 (1 )
39
+ 24 INPLACE_SUBTRACT
40
+ 26 STORE_FAST 0 (n)
41
+ 28 JUMP_ABSOLUTE 2
42
+ >> 30 POP_BLOCK
43
+
44
+ 5 >> 32 LOAD_GLOBAL 0 (print )
45
+ 34 LOAD_CONST 4 (' Blastoff!' )
46
+ 36 CALL_FUNCTION 1
47
+ 38 POP_TOP
48
+ 40 LOAD_CONST 0 (None )
49
+ 42 RETURN_VALUE
26
50
>> >
27
51
28
52
----------
46
70
>> > c = countdown.__code__ .co_code
47
71
>> > import opcode
48
72
>> > opcode.opname[c[0 ]]
49
- >> > opcode.opname[c[0 ]]
50
73
' SETUP_LOOP'
51
- >> > opcode.opname[c[3 ]]
74
+ >> > opcode.opname[c[2 ]]
52
75
' LOAD_FAST'
53
76
>> >
54
77
You can’t perform that action at this time.
0 commit comments