<<返回python首页 python

《Python 应用案例》

Python 动态变量名赋值

使用Python时常常会需去动态生成变量,如动态生成var1...var10变量。

  • 使用exec动态赋值

exec在python3中是内置函数,它支持python代码的动态执行。

运行下方实例

for i in range(5):
    exec('var{} = {}'.format(i, i))

print(var0, var1, var2, var3 ,var4)
  • 利用命名空间动态赋值

在Python的命名空间中,将变量名与值存储在字典中, 可以通过locals()globals()函数分别获取局部命名空间和全局命名空间。

运行下方实例

names = locals()

for i in range(5):
    names['n' + str(i) ] = i

print(n0, n1, n2, n3, n4)
  • 在类中使用动态变量

python的类对象的属性储存在的__dict__中。__dict__是一个词典,键为属性名,值对应属性的值。

运行下方实例

class Test_class(object):
    def __init__(self):
        names = self.__dict__
        for i in range(5):
            names['n' + str(i)] = i

t = Test_class()
print(t.n0, t.n1, t.n2, t.n3, t.n4)

调用动态变量

事实上,对于重复性的变量,我们一般不会这样调用变量,如:var0, var1, var2, var3 ,var4....varN,可以利用下面方法动态调用变量

运行下方实例

#先定义如下变量:
for i in range(5):
    exec('var{} = {}'.format(i, i))

print(var0, var1, var2, var3 ,var4)

利用exec函数

同样地,可以使用exec调用变量

运行下方实例

for i in range(5):
    exec('print(var{}, end=" ")'.format(i))

利用命名空间

因为命令空间的locals()globals()均会返回一个字典,利用字典的get方法获取变量的值

运行下方实例

names = locals()

for i in range(5):
    print(names.get('var' + str(i)), end=' ')

使用local()来检验动态生成的变量

locals()

或使用jupyter魔法函数来显示得更简洁

%whos

原文地址:https://www.cnblogs.com/technologylife/p/9211324.html

作者:Pyerlife

移动端设备除iPad Pro外,其它移动设备仅能阅读基础的文本文字。
建议使用PC或笔记本电脑,浏览器使用Chrome或FireFox进行浏览,以开启左侧互动实验区来提升学习效率,推荐使用的分辨率为1920x1080或更高。
我们坚信最好的学习是参与其中这一理念,并致力成为中文互联网上体验更好的学练一体的IT技术学习交流平台。
您可加QQ群:575806994,一起学习交流技术,反馈网站使用中遇到问题。
内容、课程、广告等相关合作请扫描右侧二维码添加好友。

狐狸教程 Copyright 2021

进入全屏