python能用一个变量的值作为另一个变量的变量名吗?

您所在的位置:网站首页 python获取变量名字 python能用一个变量的值作为另一个变量的变量名吗?

python能用一个变量的值作为另一个变量的变量名吗?

#python能用一个变量的值作为另一个变量的变量名吗?| 来源: 网络整理| 查看: 265

python的内置函数setattr和getattr就是为了做这件事,增强动态特性。举例:

class A() pass a = A()

现在有一个对象a,我们为它动态添加成员变量a.par:

a.par = 3

还可以更动态:

b = "par" setattr(a, b, 3) # 和 a.par = 3 等价

获取也是一样的:

print(a.par, getattr(a, b)) # 都同样是访问a.par

上面例子中,变量名都在对象之内。如果非要独立的变量名可以参考其它书籍,原理一样。

原理上来说:对python、lua、js等纯动态语言来说,变量名只不过是某一个字典的key,可以随意访问。但是这个“保存变量名字的字典”隐藏在普通语法后面,对虚拟机有一定了解以后你就知道它们藏在哪了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3