如何在python中列出某些类型的所有变量?

时间:2013-03-05 11:03:56

标签: python

当我在python中输入dir()时,它可以显示所有可见的变量,例如:

>>> dir()
['ACCT', 'ACEV', 'ALLOW_THREADS', 'ANNOTE_FONT', 'Annotation', 'AnnoteFinder', 'Arrow', 'Artist', 'AutoLocator', 'Axes', 'BS_KM', 'BUFSIZE', 'Button', 'CF_KM']

现在我想要一个能够列出某种类型的所有变量的函数,例如“str”,通过:

>>list_all_variable_of_type(str)

它将返回类型为'str'的变量列表。

如何编写'list_all_variable_of_type()'函数?

1 个答案:

答案 0 :(得分:8)

dir只显示名称。您需要globals()才能访问实际变量。所以可能:

[name for name, value in globals().items() if isinstance(value, basestring)]

(请注意,如果你依赖它来访问一组未知的变量,你可能做错了;你应该将数据存储在像dict这样的整体数据结构中。)