quand python supprimer les variables?

Je sais que python dispose d'un dispositif de garbage collector et il devrait donc supprimer automatiquement les variables quand il n'y a plus de référence.

Mon impression est que cela ne se produit pas pour les variables locales (à l'intérieur d'une fonction).

def funz(z):
    x = f(z) # x is a np.array and contains a lot of data 
    x0 = x[0]
    y = f(z + 1) # y is a np.array and contains a lot of data
    y0 = y[0]  

    # is x still available here ?
    return y[0], x[0] 

est del x la bonne façon d'économiser de la mémoire ?

   def funz(z):
        x = f(z) # x is a np.array and contains a lot of data 
        x0 = x[0]
        del x
        y = f(z + 1) # y is a np.array and contains a lot of data
        y0 = y[0]  

        return y[0], x[0] 

EDIT: j'ai édité mon exemple, qu'il est plus semblable à mon problème réel.
Dans mon vrai problème, x et y ne sont pas de liste de la classe mais qui contient différents à long np.tableau

EDIT: je suis en mesure d'exécuter le code:

x = f(z)
x[0]
print(x0)

y = f(z + 1)
y0 = [0]
print( y0)
j'ai l'impression que cela n'arrive pas pour les variables locales (à l'intérieur d'une fonction). Ce qui vous a donné cette impression? Les noms locaux sont nettoyés lorsque la fonction se termine; les objets référencés sont supprimés lorsque leur nombre référence tombe à 0 comme n'importe où ailleurs en Python.
J'ai une fonction qui s'exécutent en conséquence, certains indépendants des scripts. Je reçois une erreur de mémoire insuffisante. Je sais que j'ai été en mesure d'exécuter ces scripts de façon indépendante
lorsque la fonction exécute les scripts, comment allez-vous? Sont-ils en cours d'exécution comme des processus distincts ou sous forme de modules?
l'OP peut être troublé par le fait que "champ d'application" en python est différent de "champ d'application" dans de nombreuses autres langues. Par exemple, un for boucle ne permet pas de définir un nouveau champ d'application et ses variables sont toujours en vie après la dernière itération.

OriginalL'auteur Donbeo | 2014-08-13