动态变量名赋值

在使用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动态变量名定义与调用的更多相关文章

  1. Python函数的定义与调用、返回值、参数

    一.函数是什么 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.比如print(),len()等.但你也可以自己创建函数,这被叫做用户自 ...

  2. 初识python: 模块定义及调用

    一.定义 模块:用来从逻辑上组织python代码(变量.函数.类.逻辑:实现一个功能),本质就是.py结尾的python文件(比如:文件名:test.py,对应的模块名:test) 包:用来从逻辑上组 ...

  3. python中函数定义与调用顺序问题

    def main(): try: mtd(3) except Exception as e: print("程序出现异常:", e) mtd(3) def mtd(a): if a ...

  4. python 函数的定义及调用语法,map 方法,函数嵌套递归

    1.什么是函数    开发程序时候,需要代码执行多次,为了提高编写效率及代码重用性,所以把具有独立功能的代码块组织为一个小模块,给这个功能一个名称,这就是函数.    函数可以使用系统自带的函数也可以 ...

  5. Python函数的定义、参数传入与函数的调用

    作为计算机代码的一种抽象方式,函数在Python中扮演了极为重要的角色.今天给大家介绍Python函数的定义.参数的传入以及调用方式.其中函数参数的传入方式为本节重点内容.Python函数的参数形式包 ...

  6. python中函数的定义及调用

    python中函数的定义及使用方法 1.函数的概念:函数是将具有独立功能的代码块组织为一个整体,使其具有特殊功能的代码集; 2.函数的作用:使用函数可以加强代码的复用性,提高程序编写的效率; 3.函数 ...

  7. Python基础--函数的定义和调用

    一.函数的作用: 提高代码的可读性,减少代码的冗余,方便调用和修改,组织结构清晰 二.函数的定义:函数遵循先定义后调用的原则 1.无参函数 def funcname(): #def 是关键字,后跟函数 ...

  8. python 函数定义及调用

    1.什么是函数? 在程序中,函数就是具备某一功能的工具,事先将工具准备好即函数的定义:遇到应用场景拿来就用即函数的调用:函数必须遵循先定义后调用的原则 2.为什么要用函数 不用函数的问题是: 程序冗长 ...

  9. python中函数的定义与调用

    1.为什么要用函数? (1)代码重复太多(2)可读性差 使用函数的好处: (1)代码重用 (2)保持一致性,易维护 (2)可扩展性 2.初始函数定义与调用     函数的定义 def test(x): ...

随机推荐

  1. 第09章:MongoDB-CRUD操作--文档--修改--update

    ①语法 db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boole ...

  2. redis的repl-ping-slave-period和repl-ping-replica-period

    网上很多Redis方面的文章,会涉及到repl-ping-slave-period和repl-ping-replica-period这两个重要参数,从一些中文解释来看,意思差不多,即:SLAVE周期性 ...

  3. Windows窗口消息大全

    ////////////////////////////////////////////////////////////////////////// #include "AFXPRIV.H& ...

  4. 2.1.6synchronized锁重入

    关键字在使用synchronized时,当线程得到一个对象锁时,这时这个线程再次请求此对象锁是可以拿到的,也就说明同步方法之间是可以进行互相调用的, package com.cky.bean; /** ...

  5. Java Applet小应用

    开发和部署方式     嵌入到HTML网页中,用<Applet></Applet>标签识别.java环境用浏览器的,在第一次打开时下载,可开发成以后打开,默认不必再次下载.也可 ...

  6. android-基础编程-TextView

    TextView是简单而又复杂的控件,简单是使用上,复杂是源代码研究.基础编程这里只讲是如何使用. TextView主要分为两种使用方法,一种是xml中不带span的textview,另外一种是Spa ...

  7. Android webview 退出关闭声音 网页调用javascript

    关闭声音,目前没有好的办法,可以参考网络上的实用webview.reload(); @Override protected void onResume() { // TODO Auto-generat ...

  8. Q他中的乱码再理解

    Qt版本有用4的版本的也有用5的版本,并且还有windows与linux跨平台的需求. 经常出现个问题是windows的解决了,源代码放到linux上编译不通过或者中文会乱码,本文主要是得出一个解决方 ...

  9. oj错误之char型超出范围

    在oj时遇到一个题 题目本身并不是很难,但在一个数据时出了错,刚开始一直没想通是哪里出了错 下面为源代码 #include <bits/stdc++.h> using namespace ...

  10. Android-Java多线程通讯(生产者 消费者)&等待唤醒机制

    多线程通讯:例如:有一个线程任务在run生产,还有一个线程任务在run消费: VIP尊贵的身份,生产者 消费者 方式,(精心生产制作一个超级无敌好吃的面包,卖给VIP尊贵的身份消费者)生产与消费 一对 ...