用Python循环创建多个变量, 如创建 a1= 、a2= 、a3= 、a4= 、a5= 或 self.a1= 、self.a2= 、 self.a3=

一. 可以通过python的内置函数locals 来完成

locals是python的内置函数,他可以以字典的方式去访问局部和全局变量。

python里面用名字空间记录着变量,就像javascript的window一样,他记录着各种全局变量。

每个模块,每个函数都有自己的名字空间,记录着变量,常量,类的命名和值。

就像JS一样,当python在使用变量时,会按照下面的步骤去搜索:

1、函数或类的局部变量。

2、全局变量。

3、内置变量。

以上三个步骤,其中一下步骤找到对应的变量,就不会再往下找。如果在这三个步骤都找不到,就会抛出异常。

Python 也可以像javascript那样动态生成变量。我们看javascript的动态生成变量:

1 var obj ={};2 for (var i =0, len = 10; i < len; i++){3 obj['a' + i] =i;4 }5

6 console.log(i); //{'a0':0, 'a1':1....,'a9':9}

Python中的locals 方法

1 createVar =locals()2 listTemp = range(1,10)3 for i,s inenumerate(listTemp):4 createVar['a'+i] =s5 printa1,a2,a36 #......

1 deffoo(args):2 x=1

3 printlocals()4

5 foo(123)6

7 #将会得到 {'arg':123,'x':1}

1 for i in range(3):2 locals()['a'+str(i)]=i3 print 'a'+str(i)

打印结果:变量名: a0 a1 a2 对应值 a0=0 a1=1 a2=2

二. 对于class,推荐使用setattr()方法

setattr给对象添加属性或者方法

setattr(

object, name, value)

This is the counterpart of getattr(). The arguments

are an object, a string and an arbitrary value. The string may name an existing

attribute or a new attribute. The function assigns the value to the attribute,

provided the object allows it. For example, setattr(x,

'foobar', 123) is equivalent to

x.foobar = 123.

1 classtest(object) :2 def __init__(self):3 dic={'a':'aa','b':'bb'}4 for i indic.keys() :5 setattr(self,i,dic[i]) #第一个参数是对象,这里的self其实就是test.第二个参数是变量名,第三个是变量值

6 print(self.a)7 print(self.b)8 t=test()

打印结果: aa , bb

动态打印self变量:

1 exec("self.a"+str(i)+".move("+str(x)+","+str(y)+")")2 exec("self.a"+str(i)+".show()")

提示: 动态创建字典会带来额外开销,如果可以的话,请尽量指定键值对。

python创建变量_【转载】 Python动态生成变量相关推荐

  1. python创建矩阵_在Python中创建矩阵的Python程序

    python创建矩阵 There is no specific data type in Python to create a matrix, we can use list of list to c ...

  2. python 创建工具包_使用Python工具建立网站

    python 创建工具包 并非每个网站都是博客,博客的主要功能是帖子列表,每个帖子都有特定的时间戳,以指示其"新鲜度". 有时,您只想要一个网站 . 也许您是一名业余(或专业!)厨 ...

  3. python创建按钮_掌握Python之Tkinter按钮组件的创建及使用

    不学python功能按钮肯定是不完整的啊,尤其是在使用python过程中,大量需要使用的tkinter,要怎么利用这个模块去创建个功能键呢?一起来看下吧~ 使用tkinter.Tk() 生成主窗口(r ...

  4. python创建数据集_使用Python从图像创建数据集以进行人脸识别

    我正在尝试用Python编写人脸识别程序(我将应用k-nn算法进行分类). 首先,我将图像转换为灰度,然后创建了一个长列向量(通过使用Opencv的imagedata函数),该向量具有图像的像素(总共 ...

  5. format函数python的顺序_[转载] Python中format函数用法

    Python中format函数用法 format优点 format是python2.6新增的格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能 ...

  6. python创建数据集_利用 python 在本地数据集创建训练集和测试集

    根据自己的数据集,自动划分训练集.测试集 举个栗子: 已经分好的文件: origin 文件夹有三类数据:good,bad,m,每类文件夹包含不同数量的图片,如下: 需要生成数据集的文件: 结果:根据设 ...

  7. python3动态生成变量_【转载】 Python动态生成变量

    用Python循环创建多个变量, 如创建 a1=   .a2=   .a3=   .a4=   .a5=    或  self.a1=    .self.a2=   . self.a3= 一. 可以通 ...

  8. 【转载】 Python动态生成变量

    用Python循环创建多个变量, 如创建 a1=   .a2=   .a3=   .a4=   .a5=    或  self.a1=    .self.a2=   . self.a3= 一. 可以通 ...

  9. Python 动态生成变量

    用Python循环创建多个变量, 如创建 a1=   .a2=   .a3=   .a4=   .a5=    或  self.a1=    .self.a2=   . self.a3= 一. 可以通 ...

最新文章

  1. 生产订单总目标成本为0
  2. shell中的各种括号的使用方法
  3. C#之获取网页标题...
  4. WinCE驱动开发问题精华集锦
  5. Hanoi(汉诺)塔问题
  6. verilog找不到模块_工欲善其事,必先利其器 verilog编辑器搭建
  7. redis服务端的maxclient和最大连接空闲时间设置
  8. 通过docker-composer启动容器nginx,并完成spring.boot的web站点端口转发
  9. 涨姿势 | 如何修复硬盘,以及如何避免硬盘损坏
  10. 颜值测试API,微软小冰颜值,颜值API
  11. FPGA 之 SOPC 系列(七)NIOS II 高级技术
  12. M2增速8%处于历史地位——解读10月货币数据
  13. 在AI里怎么把一行字拆成单个的字,并且可编辑
  14. 解决curl ftp:192.168.4.12 (67) Access denied: 530和500问题
  15. Cannot format given Object as a Number
  16. 网易mumu模拟器去广告纯净版 v1.26.1.1
  17. 机器学习 —— 周志华
  18. 稳压二极管与TVS管
  19. 原生m1/m2 Sketch v90 for Mac最新中文版Sketch已更新,已解决闪退打不开问题
  20. run.rat闪退问题

热门文章

  1. Swift UISearchController
  2. 2015Cocos游戏开发大赛作品——人鱼塞壬
  3. Linux用find查找指定文件的操作
  4. HDU 5510 Bazinga 暴力匹配加剪枝
  5. UVa 1225 Digit Counting
  6. mybatis大于小于的转义
  7. nagios 整合 ganglia 设置邮件、短信报警
  8. c语言楼梯有10级台阶,C语言小程序之没事爬楼梯
  9. alot英文怎么读_很多的英文怎么说
  10. 6-4 二叉树的非递归遍历 (25分)_本周小结!(二叉树)