我知道这del d[key]
将删除键值对,而d[key]=None
只会取消引用该值。
但是,在内存管理方面,有什么区别吗?None
假设没有其他变量引用该值,设置值是否会立即触发垃圾回收?
我做了一个小实验:
In [74]: import sys
In [75]: a = {'a': 'blah'}
In [76]: sys.getsizeof(a)
Out[76]: 280
In [77]: a['a'] = None
In [79]: sys.getsizeof(a)
Out[79]: 280
In [80]: del a['a']
In [81]: sys.getsizeof(a)
Out[81]: 280
不确定该方法是否有效,但在字典的大小方面似乎完全没有区别。我必须在这里错过一些东西。