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
вероятен y сделано, чтобы избежать перераспределения памяти для элементов при их удалении, но все же вопрос остается.
И последний - в чем разница между операторами del l
и del l [:]
?