class ToBeDeleted:
def __init__(self, value):
self.value = val
# Whatever...
def __del__(self):
print self.value
l = [ToBeDeleted(i) for i in range(3)]
del l
这打印2, 1, 0
。
现在,被删除元素的顺序是在规范中定义的还是特定于实现的?(或者我可能不了解底层机制)
例如,输出可以是
0, 1, 2
吗?我意识到该2, 1, 0
命令可能是为了避免在删除元素时重新分配元素的内存,但问题仍然存在。del l
最后一个 -和del l[:]
语句有什么区别?