[Python] avrei bisogno del valore null... o almeno credo...

Y3s y3s a katamail.com
Mer 30 Gen 2008 18:41:07 CET


Il giorno 30/gen/08, alle ore 18:18, Java ha scritto:
>

<CUT>

> testa = null
> for elem in lista:
>     if elem.getEtichetta() ==  lista[0]:
>        testa = elem
>     else:
>        testa = Elemento()
>
> # da qui in poi lavoro su testa
>
> Spero che si capisca che "testa" può essere sia un nuovo oggetto
> Elemento e sia un'oggetto già presente in rete.

Penso che stai "ragionando in un altro linguaggio", non in python.  
Comunque, col tempo farai refactoring ;-)
In python (e in altri linguaggi "furbi") non c'è alcun bisogno di  
metodi getter/setter. Accedi direttamente all'attributo che ti  
interessa, se poi un giorno hai bisogno di controllare l'accesso  
trasformerai l'attributo in una property e il tutto ti funzionerà  
automaticamente, senza modificare nient'altro. Comunque non mi è  
molto chiaro il tuo problema, ma il codice che hai scritto mi sembra  
errato, per ogni elemento della lista, se getEtichetta() non è uguale  
a lista[0] viene creato un nuovo oggetto "Elemento" che poi viene  
perso. Dovresti quantomeno mettere un'istruzione di uscita dal ciclo  
da qualche parte, ma probabilmente esiste una strada migliore. Di  
preciso, cosa devi fare?


> Quello che ci faccio dopo è identico in entrambi i casi, ma senza  
> valore
> "null" non so come fare....

In python esiste l'oggetto "None", che viene sempre valutato "False".  
In ogni caso non mi sembra che ti serva.

>
> Potrei subito creare testa = Elemento(), ma se poi invece devo solo
> aggiornare un valore già presente, ho creato inutilmente un nuovo
> oggetto che resterà in giro fino al prossimo garbage collecting...


Ecco, appunto :-)
Ti consiglio di non porti troppi problemi del genere, a meno che  
questo oggetto "Elemento" non pesi davvero troppo non è proprio un  
problema crearlo. Soprattutto visto che nel codice sopra ne crei len 
(lista) - 1 ;-)

--
Antonio Valente




More information about the Python mailing list