python学习_python实现可变变量名

python学习_python实现可变变量名

这篇文章次要介绍了Python中运用静态变量名的办法,需求的冤家能够参考下

假如要写一个顺序,让x1为1,x2为2,而后直到x100为100,你会怎样做?

正在C这类动态言语里,变量名这个标识符实践上会被编译器间接翻译成内存地点,以是除手动配置每一个变量的值之外,没方法做到这点。而Python这类静态言语则是能够做到的。

最简单想到的天然是eval,可是实践上基本没有需求这类风险的工具,由于Python的变量名便是一个字典的key罢了。要获得这个字典,间接用locals以及globals函数便可。

因而这个顺序能够如许完成:

代码以下:

>>> names = locals()
>>> for i in xrange(1, 101):
...   names['x%s' % i] = i
...
>>> x1
1
>>> x2
2
>>> x100
100

不外你大概会说这个例子没甚么用,究竟结果用数组来完成更加适用。

那末再思索一个例子:效劳器运用一种工具数据库,能够间接保管工具到数据库中。效劳器列出今朝撑持的一切类,而用户想增加一个没有存正在于列表中的类,因而向效劳器发送一段JSON或者XML文本。效劳器剖析这段文本,将它转换成一个class工具,而且配置类名。以后用户就能够随便天生这个类的工具。
关头是这个数据库以及类名相关,你不克不及用一个通用的Object类来保管一切的工具,不然查问时就乱套了。
而刚巧的是,还就有人正在GAE论坛上提出了这个需要,而只会Java的他终极只能保持。

固然,你想用来恶搞也行:

代码以下:

>>> locals()['True'] = False
>>> True
False

另外一个用途便是测试一个变量名能否曾经存正在。规范的做法是try...except一个NameError非常,实践上间接用in locals()或者in globals()就可以判别了。
特地再介绍另外一种奇异的办法,没有晓得有人如许写过没:

代码以下:

>>> import __main__
>>> hasattr(__main__, 'x')
False
>>> setattr(__main__, 'x', 1)
>>> x
1
>>> hasattr(__main__, 'x')
True

固然,不任何人推选你如许写,我也没有会。

最初,除静态配置变量名,静态删除了也是能够的,比方del locals()['x1']。异样,delattr也是可用的。

相关教程推选:Python视频教程

以上便是python完成可变变量名的具体内容,更多请存眷酷吧易资源网别的相关文章!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

酷吧易资源网 python教程 python学习_python实现可变变量名 https://www.kubayi.com/5064.html

常见问题

相关文章

评论
暂无评论