博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 动态变量名赋值
阅读量:5997 次
发布时间:2019-06-20

本文共 769 字,大约阅读时间需要 2 分钟。

  hot3.png

对于单个函数: 

def dongtai(**dic):     for i in dic.keys():         locals()[i]=dic[i]     print locals()#locals()是当前作用域内的变量,属性,方法等组成的字典,可以通过这个看到当前函数内的有效变量

测试 :
>>> dongtai(a="1",b="2",c="3") {'i': 'b', 'a': '1', 'c': '3', 'b': '2', 'dic': {'a': '1', 'c': '3', 'b': '2'}}
可以看到成功了,在dongtai()函数体内可以用 print a,b,c来查看有没有赋值。

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

class test(object) :    def __init__(self,**dic):        self.name="jon"        for i in dic.keys() :            setattr(self,i,dic[i]) #第一个参数是对象,这里的self其实就是test.第二个参数是变量名,第三个是变量值
测试:
>>>t=test(a="1",b="2",c="3")>>>print t.a,t.b,t.c1 2 3
也成功了,注意,class里面不能使用locals()来赋值因为locals()是__init__函数的,而我们需要的是test类的成员,也就是self.a,self.b,self.c……,比__init__还要高一级的。

还有一种方法是通过globals()来做的,个人感觉太麻烦,就不去研究了。

转载于:https://my.oschina.net/cxz001/blog/108497

你可能感兴趣的文章
简单事件委托
查看>>
别人的面试经历 软件测试工程师
查看>>
VirtualBox虚拟机网络设置(四种方式)
查看>>
小学期学习总结一
查看>>
C++学习-7
查看>>
《python编程》第二章笔记
查看>>
Rendering Resources
查看>>
DBoW2 词袋模型笔记
查看>>
js上传图片及预览功能
查看>>
有趣的++i和i++
查看>>
linux shell 提示符
查看>>
阿里企业云邮箱各个服务器地址及端口信息
查看>>
Linux查看程序端口占用情况
查看>>
linux 命令集合
查看>>
Linux系统修改编码
查看>>
java之struts2的action优化配置
查看>>
css实现移入文字顶部出现提示的效果
查看>>
[leetcode-459-Repeated Substring Pattern]
查看>>
贪心算法
查看>>
浅谈服务器架构之MMORPG端游
查看>>