动态变量名赋值
在使用tkinter时需要动态生成变量,如动态生成var1...var10
变量
使用exec动态赋值
exec在python3中是内置函数,它支持python代码的动态执行。
示例:
![af94275e1a5bfeab7b7172654fee3401.png](https://i-blog.csdnimg.cn/blog_migrate/2c9835215480922cb1f02c28f84cefdc.jpeg)
利用命名空间动态赋值
在Python的命名空间中,将变量名与值存储在字典中,
可以通过locals(),globals()函数分别获取局部命名空间和全局命名空间。
示例
![eb0eee8932c19f0bc2d5d34dd9b71ebd.png](https://i-blog.csdnimg.cn/blog_migrate/cd0ebf8b3e1a6171ca0eac9431fcc442.jpeg)
在类中使用动态变量
python的类对象的属性储存在的__dict__
中。__dict__
是一个词典,键为属性名,值对应属性的值。
![df263a0cdc99f5edadc22c37cc5cad97.png](https://i-blog.csdnimg.cn/blog_migrate/24d0f92c4a2700880cb86ef1e7db21e9.jpeg)
调用动态变量
事实上,对于重复性的变量,我们一般不会这样调用变量,如:var0, var1, var2, var3 ,var4....varN
,可以利用下面方法动态调用变量
先定义如下变量:
![4c526fb2ee7575187900290abbae58ff.png](https://i-blog.csdnimg.cn/blog_migrate/6ad9b00262bc8c0fd2c6d29281d67677.jpeg)
利用exec函数
同样地,可以使用exec调用变量
![2ed3387d74c5ccdd48809896c51f9fc1.png](https://i-blog.csdnimg.cn/blog_migrate/f64b51b913e0190ea9b482cbf9b97fbc.png)
利用命名空间
因为命令空间的locals()与globals()均会返回一个字典,利用字典的get方法获取变量的值
![10a0a4da9cafe555a808e7d202792ae6.png](https://i-blog.csdnimg.cn/blog_migrate/5be051619db69f9c6a7515a2efd01117.jpeg)
转自:Python动态变量名定义与调用-侵删