查找范围python中所有变量的类型

Oz1*_*123 1 python types scope

我想编写一个函数来获取范围内的所有变量,然后确定每个变量的类型。我知道 vars()、dir() 和类似的函数,但这些函数返回一个字符串列表。我怎样才能真正获得类型?我想做这样的事情:

 #this is just pseudo code
 for item in <items in scope>:
     if isinstance(item, someclass):
        del <item which belongs to someclass>
Run Code Online (Sandbox Code Playgroud)

预先感谢,奥兹

e-s*_*tis 6

您可能正在寻找locals,它返回一个带有本地变量名称及其值的字典:

for name, value in locals().items():
     if isinstance(value, someclass):
        do something
Run Code Online (Sandbox Code Playgroud)

好的,我正在编辑这个答案,因为它是最接近我想要的:我想删除所有 numpy 数组。我觉得很烦人的是 numpy 没有“清除所有”八度\matlab,并且 ipython 的 %reset 有点太多了......

所以,这里是:在[24]中:anp=np.r_[1:10]

 In [25]: np.who()
 Name            Shape            Bytes            Type
 ===========================================================

 anp             9                36               int32

 Upper bound on total bytes  =       36

 In [26]: for name, value in locals().items():
 ....:     if isinstance(value, np.ndarray):
 ....:         print name
 ....:         print value
 ....:         del globals()[name]
 ....: 
 anp
 [1 2 3 4 5 6 7 8 9]

 In [27]: np.who()

 Upper bound on total bytes  =       0
Run Code Online (Sandbox Code Playgroud)

感谢大家的意愿和努力!