• Python动态生成变量


    Python 也可以像javascript那样动态生成变量。我们看javascript的动态生成变量。

    var obj = {};
    for (var i =0, len = 10; i < len; i++){
        obj['a' + i] = i;
    }
    
    console.log(i); //{'a0':0, 'a1':1....,'a9':9}

    在python中,我用可以使用locals方法。

    createVar = locals()
    listTemp = range(1,10)
    for i,s in enumerate(listTemp):
        createVar['a'+i] = s
    print a1,a2,a3
    #......

    关于locals

    locals是python的内置函数,他可以以字典的方式去访问局部和全局变量。
    python里面用名字空间记录着变量,就像javascript的window一样,他记录着各种全局变量。
    每个模块,每个函数都有自己的名字空间,记录着变量,常量,类的命名和值。

    就像JS一样,当python在使用变量时,会按照下面的步骤去搜索:
    1、函数或类的局部变量。
    2、全局变量。
    3、内置变量。
    以上三个步骤,其中一下步骤找到对应的变量,就不会再往下找。如果在这三个步骤都找不到,就会抛出异常。

    体验locals

    list1 = [1,2,3]
    locals()
    
    # 在全局中使用locals,会打印出list1和__builtins__、__name__、__doc__、__package__
    def foo(args):
        x=1
        print locals()
    
    foo(123)
    
    #将会得到 {'arg':123,'x':1}

    动态创建字典会带来额外开销,如果可以的话,请尽量指定键值对。

  • 相关阅读:

    循环队列
    flask开发遇到 Must provide secret_key to use csrf解决办法
    python中set集合的使用
    python中mysqldb的用法
    Pycharm用上未加环境变量的Anaconda
    使用anaconda prompt和youtube-dl下载Youtu视频
    VirtualBox 6.1.12安装部署Ubuntu18.04
    菜鸡记录自己用visual studio2019写第一个C++
    安装MATLAB2019a
  • 原文地址:https://www.cnblogs.com/zzbo/p/3391453.html
Copyright © 2020-2023  润新知