我想写一个函数,获取范围内的所有变量,然后确定 每个变量的类型。 我知道 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
感谢大家的意志和努力!
