加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

这表明每次调用函数时解释器都在重建值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读