美文网首页
Python动态创建变量

Python动态创建变量

作者: Bug2Coder | 来源:发表于2019-06-27 15:39 被阅读0次

    命名空间
    locals() 局部命名空间

    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000000000211C240>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'C:/Users/Administrator/Desktop/Y_Project/test.py', '__cached__': None}
    

    globals() 全局命名空间

    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000000001D9C240>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'C:/Users/Administrator/Desktop/Y_Project/test.py', '__cached__': None}
    

    创建局部变量--全局不能使用

      def A():
        names = locals()
        for i in range(5):
            names['a%s' % i] = i
        for i in range(5):
            print(names['a%s' % i])
        print(names['a1'])
    
    def B():
        print(names['a1'])
    
    A()
    B()
    结果:
    0
    1
    2
    3
    4
    5
    1
    Traceback (most recent call last):
      File "C:/Users/Administrator/Desktop/test.py", line 14, in <module>
        B()
      File "C:/Users/Administrator/Desktop/test.py", line 11, in B
        print(names['a1'])
    NameError: name 'names' is not defined
    

    创建全局变量--适用于类内部方法间的使用

    def A():
        global names
        names = globals()
        for i in range(5):
            names['a%s' % i] = i
        for i in range(5):
            print(names['a%s' % i])
        print(names['a1'])
        print('A')
    
    
    def B():
        print('B')
        print(names['a1'])
    
    A()
    B()
    结果:
    0
    1
    2
    3
    4
    1
    A
    B
    1
    

    创建各种数据类型

    列表:
    names['a%s'%i] = []
    字典:
    names['a%s'%i] = {}
    集合:
    names['a%s'%i] = set()
    元组:
    names['a%s'%i] = ()
    
    各自的方法都可以正常使用
    
    

    相关文章

      网友评论

          本文标题:Python动态创建变量

          本文链接:https://www.haomeiwen.com/subject/oqercctx.html