Skip to main content
 首页 » 编程设计

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

2025年05月04日13lyj

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

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

提前致谢, 盎司

请您参考如下方法:

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

for name, value in locals().items(): 
     if isinstance(value, someclass): 
        do something 

好的,我正在编辑这个答案,因为它最接近我想要的: 我想删除所有 numpy 数组。我发现 numpy 没有“全部清除”一个 la octave\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 

感谢大家的意志和努力!