我对 python 相当陌生,我想知道局部变量是如何工作的。让我们从一个简单方法的示例开始:
def do_sth():
local_dict = { 'a': 1, 'b': 2, 'c': 3, ... }
...
我们假设 local_dict 的使用方式类似于 const 变量。问题是:每次调用 do_sth() 时都会创建它,还是创建一次并保存在 do_sth() 内部的某个位置?
您可以使用以下命令查看解释器做了什么dis
module:
def do_sth():
d = {'a':2, 'b':3}
print(id(d))
import dis
dis.dis(do_sth)
将打印
2 0 BUILD_MAP 2
3 LOAD_CONST 1 (2)
6 LOAD_CONST 2 ('a')
9 STORE_MAP
10 LOAD_CONST 3 (3)
13 LOAD_CONST 4 ('b')
16 STORE_MAP
17 STORE_FAST 0 (d)
3 20 LOAD_GLOBAL 0 (id)
23 LOAD_FAST 0 (d)
26 CALL_FUNCTION 1
29 PRINT_ITEM
30 PRINT_NEWLINE
31 LOAD_CONST 0 (None)
34 RETURN_VALUE
这表明解释器在每次调用函数时都会重建该值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)