3

locals()是一个字典。如果我做一个简单的:

for i in locals().keys():
     type(i)

...返回的是名称都是字符串(是的,事实上,它们是)但这些键表示不同的类型 - 例如,一个可能是模块。一些引用类型(对象)以及原始类型(例如 int、string)。

从某种意义上说,我想从字符串中提取名称。研究了如何使用字符串上的属性执行此操作,但没有成功。我相信我需要内省的东西,但是什么?

4

1 回答 1

2

locals().keys()返回绑定在本地空间中的所有变量名。由于它们是名称,因此它们都是字符串。(在 Python 2.x 中,您也可以使用locals().iterkeys()它来获取迭代器。)

试试locals().values()吧。对于 Python 2.x,您可以使用locals().itervalues()来获取迭代器。

或者locals().items()得到key, value对。对于 Python 2.x,您可以使用它locals().iteritems()来获取迭代器。

于 2012-04-20T22:37:11.830 回答