码迷,mamicode.com
首页 > 编程语言 > 详细

Python动态地声明变量赋值

时间:2019-12-21 11:38:33      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:python语句   href   ref   变量赋值   键值   tps   shell   一次循环   结果   

通过exec()、globals()和locals()

# 通过exec()
for i in range(1, 4):
    # 第一次循环 i=1 时,会执行字符串中的python语句 ex1 = "exec1",以此类推
    exec(f'ex{i} = "exec{i}"')

# 通过globals()和locals()
def test():
    # globals()
    for i in range(1, 4):
        # 第一次循环 i=1 时,执行 globals()['gb1'] = 'global1', globals()是一个dict
        globals()[f'gb{i}'] = f'global{i}'

    # locals()
    for i in range(1, 4):
        locals()[f'lc{i}'] = f'local{i}'

    # 尝试打印locals的变量
    try:
        print(lc1, lc2, lc3)    # 会报错
    except Exception as e:
        print(e)
        print(locals()['lc1'], locals()['lc2'], locals()['lc3'])    # 通过键值对

if __name__ == '__main__':
    # 执行
    test()
    print('---------------------')
    # 打印函数定义的全局变量
    print(gb1, gb2, gb3)
    print('---------------------')
    # 打印通过exec()定义的变量
    print(ex1, ex2, ex3)

输出结果:

name 'lc1' is not defined
local1 local2 local3
---------------------
global1 global2 global3
---------------------
exec1 exec2 exec3

Python动态地声明变量赋值

标签:python语句   href   ref   变量赋值   键值   tps   shell   一次循环   结果   

原文地址:https://www.cnblogs.com/milesma/p/12076244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!