python3动态生成变量_【转载】 Python动态生成变量
用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动态生成变量相关推荐
- qq动态名片代码_利用Python动态爬取QQ说说并生成词云,分析朋友状况!
今天我们要做的事情是使用动态爬虫来爬取QQ空间的说说,并把这些内容存在txt中,然后读取出来生成云图,这样可以清晰的看出朋友的状况. 这是好友的QQ空间10年说说内容,基本有一个大致的印象了. 爬取动 ...
- python保存变量_将python 中的变量保存到本地
如何将python中的变量保存在本地? 将python 的一些代码保存在本地, 特别是一些需要大量运算的结果,例如 机器学习里面的模型,,放在本地,还是比较好用的.下次就可以直接拿出来使用就好. 其实 ...
- python批量生成图_利用Python批量生成任意尺寸的图片
实现效果 通过源图片,在当前工作目录的/img目录下生成1000张,分别从1*1到1000*1000像素的图片. 效果如下: 目录结构 实现示例 # -*- coding: utf-8 -*- imp ...
- 在python中合法的变量_在python中的变量
当为一个值起名字的时候,它将会存储在内存中,我们把这块内存称为变量(variable).在大多数语言中,把这种行为称为"给变量赋值"或"把值存储在变量中". 不 ...
- python是动态语言图片_利用python图片生成,需10几行代码,生成的动态表情包(小黄鸭)...
小编找到了10几行的,好玩的动态表情包生成的代码.分享分享! 这个程序怎么做呢?不要急,来听我给大家分析分析. 工具:程序环境 语言:Python 3.6 编辑器:Pycharm 程序步骤 实现字符动 ...
- python请编写程序、生成随机密码_利用Python如何生成随机密码
本位实例为大家分享了Python生成随机密码的实现过程,供大家参考,具体内容如下 写了个程序,主要是用来检测MySQL数据库的空密码和弱密码的, 在这里,定义了三类弱密码: 1. 连续数字,譬如123 ...
- python传递变量_在Python中传递变量
您需要将read_one_file()的结果存储在某个地方.你到底是什么 处理return语句就是创建结果的元组.那么你呢 当你调用read_one_file时,必须解包这个元组.下面是一个例子:(i ...
- python生成等值线_在python中生成X,Y数据的等值线图
嗨,我不确定这是否已经被问过了,但我找不到一个满足我的答案.在 如果你有X,Y和温度数据,请看下面的例子.如何在python中绘制数据的温度等值线X Y Temp 0 0 23 0.1 0 23 0. ...
- 用python画一个房子_用Python动态地画一个房子
用Python动态地画一个房子 Python代码狂人 Python代码大全 用Python动态画一个房子,我们可从上向下画,先画房顶,再依次画阁楼窗户.房屋主体.屋门及主屋窗户. 运行本程序前请确保已 ...
- python ppt自动生成_实战 | Python自动生成PPT调研报告
原标题:实战 | Python自动生成PPT调研报告 原文: 全文约 3821 字,读完可能需要 5 分钟. 文/JSong @2017.02.28 在数据分析里面有一句话是说,80%的时间要用于数据 ...
最新文章
- 2021年秋季学期“大数据能力提升项目”证书办理及领取通知
- java广播数据包发送_在Java中广播UDP数据包的正确和有效方法是什么?
- 加速DeiT-S 60%+吞吐量!腾讯优图提出高性能Transformer加速方法
- IOS-状态栏的简单操作
- 使用 AudioContext restart 音频
- LeetCode-105:从前序与中序遍历序列构造二叉树
- 一款好看的提示框-------记录一下地址
- oracle 替换全部空格
- 吾是否有“受迫害妄想症”之反省
- 向前差分格式 matlab,热传导方程向前差分格式的matlab程序
- 结合使用Canvas API与History API——模拟绘图
- 3D模型在线转换,Solidworks版本转换
- 不同系统下的shell的不同_案例分析 | 不同安装角度下平板集热器阳台壁挂式太阳能热水系统性能分析...
- 聚名商学院:近六百元在聚名网抢注域名,两年不到卖了八万八千八百八十八元,这就是域名投资的魅力!
- linux flash插件安装方法,Linux系统下安装Flash浏览器插件的方法
- [Java大厂必备面试题] 点滴促就辉煌, 每日三题【Day5】:基础篇2
- 循迹追踪令人头秃的Crash,十倍程序员的Debug日常(2)
- pythonurllib登录微博什么意思_登录微博详解-爬虫的第一站
- 安卓桌面壁纸_让安卓实现 “非线性” 动画壁纸,有iOS内味了
- Windows10家庭版 SMB共享文件 方法
热门文章
- IDEA解决Maven项目编译后classes文件中没有.xml或.properties问题
- 如何让css与js分离
- Nginx+Fastdfs
- Android Binder 系统学习笔记(一)Binder系统的基本使用方法
- window下配置SSH连接GitHub、GitHub配置ssh key
- javascript 学习笔记(一)
- Storm系列(四)Topology提交校验过程
- 将MyEclipse项目导入到Eclipse中
- druid seata 配置_架构设计 | 基于Seata中间件,微服务模式下事务管理
- python制作界面怎么触发事件_python模拟事件触发机制详解