1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| >>> def A():
m = [x for x in range(500)]
>>> l = []
>>> def B():
for x in range(500):
l.append(x)
>>> import dis
>>> dis.dis(A)
2 0 LOAD_CONST 1 (<code object <listcomp> at 0x0000023D220250E0, file "<pyshell#8>", line 2>)
2 LOAD_CONST 2 ('A.<locals>.<listcomp>')
4 MAKE_FUNCTION 0
6 LOAD_GLOBAL 0 (range)
8 LOAD_CONST 3 (500)
10 CALL_FUNCTION 1
12 GET_ITER
14 CALL_FUNCTION 1
16 STORE_FAST 0 (m)
18 LOAD_CONST 0 (None)
20 RETURN_VALUE
Disassembly of <code object <listcomp> at 0x0000023D220250E0, file "<pyshell#8>", line 2>:
2 0 BUILD_LIST 0
2 LOAD_FAST 0 (.0)
>> 4 FOR_ITER 8 (to 14)
6 STORE_FAST 1 (x)
8 LOAD_FAST 1 (x)
10 LIST_APPEND 2
12 JUMP_ABSOLUTE 4
>> 14 RETURN_VALUE
>>> dis.dis(B)
2 0 LOAD_GLOBAL 0 (range)
2 LOAD_CONST 1 (500)
4 CALL_FUNCTION 1
6 GET_ITER
>> 8 FOR_ITER 14 (to 24)
10 STORE_FAST 0 (x)
3 12 LOAD_GLOBAL 1 (l)
14 LOAD_METHOD 2 (append)
16 LOAD_FAST 0 (x)
18 CALL_METHOD 1
20 POP_TOP
22 JUMP_ABSOLUTE 8
>> 24 LOAD_CONST 0 (None)
26 RETURN_VALUE |
Partager