[Python] variabili memoria

Emanuele Rampichini emanuele.rampichini a gmail.com
Mar 6 Lug 2010 19:38:05 CEST


Se vuoi rimanere nell'ambito della shell interattiva ti può tornare utile la
funzione builtin:

dir()

che mostra la lista dei nomi nello scope corrente.

E la funzione:

del(nome)

per eliminare variabili.

Piccolo esempio:

>>> dir()
['__builtins__', '__doc__', '__name__', '__package__']
>>> nome = "pippo"
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'nome']
>>> del nome
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__']

Ciao,

Emanuele

Il giorno 06 luglio 2010 18.06, Filippo Dal Bosco - <
Filippo.Dalbosco a libero.it> ha scritto:

> Premessa sto iniziando a studiare python per hobby, unico altro
> linguaggio che ho usato moltissimi anni fa è stato db3 e clipper
> ( quindi niente oggetti).
> Pur usando abitualmente linux sto facendo i primi esperimenti con
> PythonWin che al momento mi sembra abbastanza comodo, ma ho il segunte
> problema:
>
> se lancio in pythonWin il banale script
> ------------------------------------------------------
> class Cappuccetto:
>    def Nonna(self):
>        print "Class Cappuccetto Abcd"
> Lupo=Cappuccetto()
> Cappuccetto.Nonna(Lupo)
> # oppure
> Lupo.Nonna()
> print str(id(Lupo)) +" id Lupo=Capucetto"
> Lupo="sfigato"
> print str(id(Lupo)) + " id Lupo Sfigato"
> ----------------------------------------------------------
> funziona
>
> se lo modifico (in maniera scorretta)
> ------------------------------------------------------------
> class Cappuccetto:
>    def Nonna(self):
>        print "Class Cappuccetto Abcd"
>    Lupo=Cappuccetto()
>    Cappuccetto.Nonna(Lupo)
> # oppure
>    Lupo.Nonna()
> print str(id(Lupo)) +" id Lupo=Capucetto"
> Lupo="sfigato"
> print str(id(Lupo)) + " id Lupo Sfigato"
>
> funziona....
>
> Se chiudo PythonWin e  lo rilancio NON funziona e dice che  Lupo non
> esiste.
>
> Questo vuol dire che Lupo è rimasto in memoria dopo il primo script
> corretto ed ha permesso al secondo script scorretto di funzionare.
> Infatti per verificare ho aggiunto id(Lupo)
>
> Questo mi incasina lo studio di Python perchè se  faccio delle prove
> con script leggermente diversi rischio di non capire se realmente
> funzionano o meno.
>
> Domada c' è un modo di distruggere le variabili?
> Basterebbe mettere alla fine di ogni script la loro distruzione  per
> risolvere il problema.
>
> grazie
>
>
> --
> Filippo
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20100706/47035eb3/attachment-0001.htm 


Maggiori informazioni sulla lista Python