Ciao Filippo, On Tue, 6 Jul 2010 18:06:33 +0200, Filippo Dal Bosco - <filippo.dalbo...@libero.it> wrote:
> 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 > ... > funziona > > se lo modifico (in maniera scorretta) > ... > 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. È un problema dell'ambiente interattivo: la soluzione è quella di non usare l'ambiente interattivo per testare gli script. Tieni una shell di fianco al prompt interattivo: quando modifichi lo script, lancialo da riga di comando e verifica cosa si rompe lì, in un ambiente sempre pulito. Poi puoi sempre eseguire lo stesso script in interattivo per giocare con gli elementi creati, ma casomai dopo che l'hai fatto girare una volta nella shell per verificare che non ci siano errori banali come una variabile mancante. Poi più in là questa tecnica verrà sostituita dallo scrivere una unit test per esercitare le funzioni che usi, ma se per il momento stai solo studiando e sporchettando, tralascia pure. Metto le mani avanti perché presto qualcuno ti dirà "USA UNA UNIT TEST!!!". Beh, sì, certo, ma con calma... anche dopo :) Comunque, almeno Idle, un comando che "cancella la memoria" ce l'ha: praticamente la finestra è un processo separato dalla shell sottostante e con una combinazione di tasti (ctrl-f6? non mi ricordo, comunque c'è nei menu) permette di killare quella shell e di ripartire fresco, senza chiudere la finestra. Magari questa feature ce l'ha anche PythonWin. Se di solito usi Linux, ti suggerisco di lasciar perdere studiare Python con windows. In Linux il normale prompt interattivo di Python, e ancora meglio un prompt con gli steroidi tipo iPython, sono molto più semplici da usare del python.exe fatto girare in cmd.exe, e la shell di linux non soffre del problema che ricordo avevano sia Idle che PythonWin, ovvero che sbattono tutto l'output in memoria, bloattando e progressivamente andando sempre più lenti. E se per errore fai il print di una lista di un milione di item, non c'è altra soluzione che killarli... questo merita chi reinventa la console :D Divertiti, a presto. -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python