Czy interpreter języka Python zręcznie obsługuje przypadki, w których instancja obiektu usuwa ostatnie odwołanie do siebie?Obiekt usuwa odwołanie do siebie
Rozważmy następujący (wprawdzie bezużyteczny) Moduł:
all_instances = []
class A(object):
def __init__(self):
global all_instances
all_instances.append(self)
def delete_me(self):
global all_instances
self.context = "I'm still here"
all_instances.remove(self)
print self.context
a teraz Zastosowanie:
import the_module
a = the_module.A()
the_deletion_func = a.delete_me
del a
the_deletion_func()
To nadal drukować I'm still here
, ale czy istnieje sytuacja wyścigu z Garbage Collector Pythona, który jest o zbieraniu instancji obiektu?
Czy odwołanie do funkcji obiektu powoduje zapisanie dnia?
Czy interpreter zachowuje odwołania do obiektu, którego kod obecnie wykonuje, dopóki nie zostanie zakończony?