Python动态变量名定义与调用
动态变量名赋值
在使用tkinter时需要动态生成变量,如动态生成var1...var10变量
使用exec动态赋值
exec在python3中是内置函数,它支持python代码的动态执行。
示例:
In [1]: for i in range(5):
...: exec('var{} = {}'.format(i, i))
...:
In [2]: print(var0, var1, var2, var3 ,var4)
0 1 2 3 4
利用命名空间动态赋值
在Python的命名空间中,将变量名与值存储在字典中,
可以通过locals(),globals()函数分别获取局部命名空间和全局命名空间。
示例
In [2]: names = locals()
In [3]: for i in range(5):
...: names['n' + str(i) ] = i
...:
In [4]: print(n0, n1, n2, n3, n4)
0 1 2 3 4
在类中使用动态变量
python的类对象的属性储存在的__dict__中。__dict__是一个词典,键为属性名,值对应属性的值。
In [1]: class Test_class(object):
...: def __init__(self):
...: names = self.__dict__
...: for i in range(5):
...: names['n' + str(i)] = i
...:
In [2]: t = Test_class()
In [3]: print(t.n0, t.n1, t.n2, t.n3, t.n4)
0 1 2 3 4
调用动态变量
事实上,对于重复性的变量,我们一般不会这样调用变量,如:var0, var1, var2, var3 ,var4....varN,可以利用下面方法动态调用变量
先定义如下变量:
In [1]: for i in range(5):
...: exec('var{} = {}'.format(i, i))
...:
In [2]: print(var0, var1, var2, var3 ,var4)
0 1 2 3 4
利用exec函数
同样地,可以使用exec调用变量
In [3]: for i in range(5):
...: exec('print(var{}, end=" ")'.format(i))
...:
0 1 2 3 4
利用命名空间
因为命令空间的locals()与globals()均会返回一个字典,利用字典的get方法获取变量的值
In [4]: names = locals()
In [5]: for i in range(5):
...: print(names.get('var' + str(i)), end=' ')
...:
0 1 2 3 4
Python动态变量名定义与调用的更多相关文章
- Python函数的定义与调用、返回值、参数
一.函数是什么 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.比如print(),len()等.但你也可以自己创建函数,这被叫做用户自 ...
- 初识python: 模块定义及调用
一.定义 模块:用来从逻辑上组织python代码(变量.函数.类.逻辑:实现一个功能),本质就是.py结尾的python文件(比如:文件名:test.py,对应的模块名:test) 包:用来从逻辑上组 ...
- python中函数定义与调用顺序问题
def main(): try: mtd(3) except Exception as e: print("程序出现异常:", e) mtd(3) def mtd(a): if a ...
- python 函数的定义及调用语法,map 方法,函数嵌套递归
1.什么是函数 开发程序时候,需要代码执行多次,为了提高编写效率及代码重用性,所以把具有独立功能的代码块组织为一个小模块,给这个功能一个名称,这就是函数. 函数可以使用系统自带的函数也可以 ...
- Python函数的定义、参数传入与函数的调用
作为计算机代码的一种抽象方式,函数在Python中扮演了极为重要的角色.今天给大家介绍Python函数的定义.参数的传入以及调用方式.其中函数参数的传入方式为本节重点内容.Python函数的参数形式包 ...
- python中函数的定义及调用
python中函数的定义及使用方法 1.函数的概念:函数是将具有独立功能的代码块组织为一个整体,使其具有特殊功能的代码集; 2.函数的作用:使用函数可以加强代码的复用性,提高程序编写的效率; 3.函数 ...
- Python基础--函数的定义和调用
一.函数的作用: 提高代码的可读性,减少代码的冗余,方便调用和修改,组织结构清晰 二.函数的定义:函数遵循先定义后调用的原则 1.无参函数 def funcname(): #def 是关键字,后跟函数 ...
- python 函数定义及调用
1.什么是函数? 在程序中,函数就是具备某一功能的工具,事先将工具准备好即函数的定义:遇到应用场景拿来就用即函数的调用:函数必须遵循先定义后调用的原则 2.为什么要用函数 不用函数的问题是: 程序冗长 ...
- python中函数的定义与调用
1.为什么要用函数? (1)代码重复太多(2)可读性差 使用函数的好处: (1)代码重用 (2)保持一致性,易维护 (2)可扩展性 2.初始函数定义与调用 函数的定义 def test(x): ...
随机推荐
- IntelliJ IDEA 2017版 spring-boot2.0.4+mybatis 自动部署的细节问题
一.加载pom依赖包 <!--spring-boot开发热部署--> <dependency> <groupId>org.springframework.boot& ...
- C# 编码标准(二)
先八卦一下,昨天写了C# 编码标准(一),得到了@h82258652的补充,感到非常欣慰,一是感觉他的观点扩展了我的视野,丰富了我的看法,所以更坚定了我继续写博客的想法,由于是五笔打字,经常不写东西, ...
- UVa 11542 Square (高斯消元)
题意:给定 n 个数,从中选出一个,或者是多个,使得选出的整数的乘积是完全平方数,求一共有多少种选法,整数的素因子不大于 500. 析:从题目素因子不超过 500,就知道要把每个数进行分解.因为结果要 ...
- hadoop 组件 hdfs架构及读写流程
一 . Namenode Namenode 是整个系统的管理节点 就像一本书的目录,储存文件信息,地址,接受用户请求,等 二 . Datanode 提供真实的文件数据,存储服务 文件块(block)是 ...
- java 冒泡排序 二分查找 选择排序 插入排序
下面这个程序是先定义一个整型数组,然后将其中的元素反序赋值,再用冒泡排序进行排序以后用二分查找来查找其中是否有某个数,返回值为-1时表示这个数可能小于这个数组的最小值或大小这个数组的最大值,-2表示这 ...
- 微信小程序之画布
canvas 标签默认宽度300px.高度225px 同一页面中的 canvas-id 不可重复,如果使用一个已经出现过的 canvas-id,该 canvas 标签对应的画布将被隐藏并不再正常工作 ...
- C++ char, unsigned char, signed char
C语言中的 char, unsigned char, signed char 一.他们是什么? signed char是有符号的,但是unsigned char没有符号,两者在存储上没有任何区别都是8 ...
- poj 1094 Sorting It All Out 拓补排序
Description An ascending sorted sequence of distinct values is one in which some form of a less-than ...
- ArcGIS API 和GIServer
ArcGIS API 和GIServer 先后以ArcGIS Server(9.3)和GIServer(2.2)为服务端,以ArcGIS API for Flex(1.2).ArcGIS API f ...
- mybatis的update操作的几种动态更新
mybatis是我们开发者常用的dao框架,亿轻巧灵活为特征,在crud操作中,动态更新是常用的操作.我搜集了两种动态更新的sql写法,以备日后备用! 方法1: update loan_product ...