CPython - это сбор мусора, как только они выходят из области видимости, поэтому второй []
создается после сбора первого []
. Таким образом, большую часть времени он попадает в ту же ячейку памяти.
Это показывает, что происходит очень четко (выход может отличаться в других реализациях Python):
class A(object):
def __init__(self): print "a",
def __del__(self): print "b",
# a a b b False
print A() is A()
# a b a b True
print id(A()) == id(A())