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@lists.python.it http://lists.python.it/mailman/listinfo/python