用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 in enumerate(listTemp):

4 createVar['a'+i] = s

5 print a1,a2,a3

6 #......

1 def foo(args):

2 x=1

3 print locals()

4

5 foo(123)

6

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

1 for i in range(3):

2 locals()['a'+str(i)]=i

3 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 class test(object) :

2 def __init__(self):

3 dic={'a':'aa','b':'bb'}

4 for i in dic.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()")

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

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

  1. qq动态名片代码_利用Python动态爬取QQ说说并生成词云,分析朋友状况!

    今天我们要做的事情是使用动态爬虫来爬取QQ空间的说说,并把这些内容存在txt中,然后读取出来生成云图,这样可以清晰的看出朋友的状况. 这是好友的QQ空间10年说说内容,基本有一个大致的印象了. 爬取动 ...

  2. python保存变量_将python 中的变量保存到本地

    如何将python中的变量保存在本地? 将python 的一些代码保存在本地, 特别是一些需要大量运算的结果,例如 机器学习里面的模型,,放在本地,还是比较好用的.下次就可以直接拿出来使用就好. 其实 ...

  3. python批量生成图_利用Python批量生成任意尺寸的图片

    实现效果 通过源图片,在当前工作目录的/img目录下生成1000张,分别从1*1到1000*1000像素的图片. 效果如下: 目录结构 实现示例 # -*- coding: utf-8 -*- imp ...

  4. 在python中合法的变量_在python中的变量

    当为一个值起名字的时候,它将会存储在内存中,我们把这块内存称为变量(variable).在大多数语言中,把这种行为称为"给变量赋值"或"把值存储在变量中". 不 ...

  5. python是动态语言图片_利用python图片生成,需10几行代码,生成的动态表情包(小黄鸭)...

    小编找到了10几行的,好玩的动态表情包生成的代码.分享分享! 这个程序怎么做呢?不要急,来听我给大家分析分析. 工具:程序环境 语言:Python 3.6 编辑器:Pycharm 程序步骤 实现字符动 ...

  6. python请编写程序、生成随机密码_利用Python如何生成随机密码

    本位实例为大家分享了Python生成随机密码的实现过程,供大家参考,具体内容如下 写了个程序,主要是用来检测MySQL数据库的空密码和弱密码的, 在这里,定义了三类弱密码: 1. 连续数字,譬如123 ...

  7. python传递变量_在Python中传递变量

    您需要将read_one_file()的结果存储在某个地方.你到底是什么 处理return语句就是创建结果的元组.那么你呢 当你调用read_one_file时,必须解包这个元组.下面是一个例子:(i ...

  8. python生成等值线_在python中生成X,Y数据的等值线图

    嗨,我不确定这是否已经被问过了,但我找不到一个满足我的答案.在 如果你有X,Y和温度数据,请看下面的例子.如何在python中绘制数据的温度等值线X Y Temp 0 0 23 0.1 0 23 0. ...

  9. 用python画一个房子_用Python动态地画一个房子

    用Python动态地画一个房子 Python代码狂人 Python代码大全 用Python动态画一个房子,我们可从上向下画,先画房顶,再依次画阁楼窗户.房屋主体.屋门及主屋窗户. 运行本程序前请确保已 ...

  10. python ppt自动生成_实战 | Python自动生成PPT调研报告

    原标题:实战 | Python自动生成PPT调研报告 原文: 全文约 3821 字,读完可能需要 5 分钟. 文/JSong @2017.02.28 在数据分析里面有一句话是说,80%的时间要用于数据 ...

最新文章

  1. 2021年秋季学期“大数据能力提升项目”证书办理及领取通知
  2. java广播数据包发送_在Java中广播UDP数据包的正确和有效方法是什么?
  3. 加速DeiT-S 60%+吞吐量!腾讯优图提出高性能Transformer加速方法
  4. IOS-状态栏的简单操作
  5. 使用 AudioContext restart 音频
  6. LeetCode-105:从前序与中序遍历序列构造二叉树
  7. 一款好看的提示框-------记录一下地址
  8. oracle 替换全部空格
  9. 吾是否有“受迫害妄想症”之反省
  10. 向前差分格式 matlab,热传导方程向前差分格式的matlab程序
  11. 结合使用Canvas API与History API——模拟绘图
  12. 3D模型在线转换,Solidworks版本转换
  13. 不同系统下的shell的不同_案例分析 | 不同安装角度下平板集热器阳台壁挂式太阳能热水系统性能分析...
  14. 聚名商学院:近六百元在聚名网抢注域名,两年不到卖了八万八千八百八十八元,这就是域名投资的魅力!
  15. linux flash插件安装方法,Linux系统下安装Flash浏览器插件的方法
  16. [Java大厂必备面试题] 点滴促就辉煌, 每日三题【Day5】:基础篇2
  17. 循迹追踪令人头秃的Crash,十倍程序员的Debug日常(2)
  18. pythonurllib登录微博什么意思_登录微博详解-爬虫的第一站
  19. 安卓桌面壁纸_让安卓实现 “非线性” 动画壁纸,有iOS内味了
  20. Windows10家庭版 SMB共享文件 方法

热门文章

  1. IDEA解决Maven项目编译后classes文件中没有.xml或.properties问题
  2. 如何让css与js分离
  3. Nginx+Fastdfs
  4. Android Binder 系统学习笔记(一)Binder系统的基本使用方法
  5. window下配置SSH连接GitHub、GitHub配置ssh key
  6. javascript 学习笔记(一)
  7. Storm系列(四)Topology提交校验过程
  8. 将MyEclipse项目导入到Eclipse中
  9. druid seata 配置_架构设计 | 基于Seata中间件,微服务模式下事务管理
  10. python制作界面怎么触发事件_python模拟事件触发机制详解