zoukankan      html  css  js  c++  java
  • 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}

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

  • 相关阅读:
    希尔排序(六)
    快速排序(五)
    oracle中的minus数据比对
    oracle中过滤中文字符或者汉字的函数
    java中已经排序的列表中插入新值
    java中双向链表的增、删、查操作
    oracle中建同名
    oracle中创建dblink
    oracle中把函数的执行权限赋个某个用户
    oracle中导出表的结构和数据
  • 原文地址:https://www.cnblogs.com/zzbo/p/3391453.html
Copyright © 2011-2022 走看看