L'interprete Python gestisce con garbo i casi in cui un'istanza dell'oggetto elimina l'ultimo riferimento a se stesso?L'oggetto cancella il riferimento a self
Si consideri il seguente modulo (certamente inutile):
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
e ora l'utilizzo:
import the_module
a = the_module.A()
the_deletion_func = a.delete_me
del a
the_deletion_func()
questo sarebbe ancora stampare I'm still here
, ma c'è una condizione di competizione con il garbage collector di Python, che è in procinto di raccogliere l'istanza dell'oggetto?
Il riferimento alla funzione dell'oggetto salva il giorno?
L'interprete mantiene i riferimenti all'oggetto il cui codice è attualmente in esecuzione fino a quando non termina?