Python局部变量初始化
发布时间:2020-12-20 12:10:39 所属栏目:Python 来源:网络整理
导读:我对 python很新,我想知道局部变量是如何工作的.让我们从一个简单方法的例子开始: def do_sth(): local_dict = { 'a': 1,'b': 2,'c': 3,... } ... 我们假设local_dict像一个const变量一样使用.这就是问题:每次调用do_sth()或创建一次并将其保存在do_sth()
我对
python很新,我想知道局部变量是如何工作的.让我们从一个简单方法的例子开始:
def do_sth(): local_dict = { 'a': 1,'b': 2,'c': 3,... } ... 我们假设local_dict像一个const变量一样使用.这就是问题:每次调用do_sth()或创建一次并将其保存在do_sth()内部的某个地方时,都会创建它? 解决方法
您可以使用dis模块查看解释器的作用:
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 这表明每次调用函数时解释器都在重建值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |