|
|
发表于 2018-5-8 17:27:16
|
显示全部楼层
➜ desktop nl pp.py
1 var = ' Hi '
2 def fun1():
3 global var
4 var = 'Baby '
5 return fun2(var)
6 def fun2(var):
7 var += 'I love you'
8 fun3(var)
9 return var
10 def fun3(var):
11 var = '小甲鱼'%
➜ desktop python3
Python 3.6.0 (v3.6.0:41df79263a11, Dec 22 2016, 17:23:13)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from pp import fun1,fun2,fun3
>>> from dis import dis
>>> dis(fun1)
5 0 LOAD_CONST 1 ('Baby ')
2 STORE_GLOBAL 0 (var)
6 4 LOAD_GLOBAL 1 (fun2)
6 LOAD_GLOBAL 0 (var)
8 CALL_FUNCTION 1
10 RETURN_VALUE
>>> dis(fun2)
9 0 LOAD_FAST 0 (var)
2 LOAD_CONST 1 ('I love you')
4 INPLACE_ADD
6 STORE_FAST 0 (var)
10 8 LOAD_GLOBAL 0 (fun3)
10 LOAD_FAST 0 (var)
12 CALL_FUNCTION 1
14 POP_TOP
11 16 LOAD_FAST 0 (var)
18 RETURN_VALUE
>>> dis(fun3)
14 0 LOAD_CONST 1 ('小甲鱼')
2 STORE_FAST 0 (var)
4 LOAD_CONST 0 (None)
6 RETURN_VALUE
不要看nl的行号了,它是把空行合并了。 |
|