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

2008-01-31 Per discussione Enrico Franchi



On 1/31/08 12:16 PM, "Lawrence Oluyede" <[EMAIL PROTECTED]> wrote:

> Soffre di un problema pero`. Per vari motivi di design le variabili
> pubbliche non sono usabili per fare il binding quali sorgenti di dati.
> Inoltre il codice generato per le properties e le variabili pubbliche
> e` differente.

Interessante...

> Indi per cui anche per la variabile pubblica piu` scema tutti usano le
> properties. E siamo da capo >D

Mica ho detto che è perfetto, eh. :P
Tra l'altro se mi piacesse o mi ispirasse lo studierei con un minimo di
applicazione. Invece francamente me ne impippo: l'ho sondato, fra mono qui
su e la ho stabilito che non mi interessa.

Anche perché l'enne+unesimo linguaggio che non uso almeno deve garbarmi. Che
so... SML. 


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


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

2008-01-31 Per discussione Lawrence Oluyede
>
> Che dovrebbe per l'appunto essere la storia delle cosidette properties.

Soffre di un problema pero`. Per vari motivi di design le variabili
pubbliche non sono usabili per fare il binding quali sorgenti di dati.
Inoltre il codice generato per le properties e le variabili pubbliche
e` differente.
Indi per cui anche per la variabile pubblica piu` scema tutti usano le
properties. E siamo da capo >D


-- 
Lawrence, stacktrace.it - oluyede.org - neropercaso.it
"It is difficult to get a man to understand
something when his salary depends on not
understanding it" - Upton Sinclair
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


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

2008-01-31 Per discussione Enrico Franchi

On Jan 31, 2008, at 11:32 AM, [EMAIL PROTECTED] wrote:

> in C# (che tra l'altro ricorda molto java) c'è pure una specie  
> di sistema automatico per get-set di variabili

Che dovrebbe per l'appunto essere la storia delle cosidette properties. 
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


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

2008-01-31 Per discussione quilospam
   

>C# dalla regia dicono che pure ci sono delle properties.in C# (che tra
l'altro ricorda molto java) c'è pure una specie di
sistema automatico per get-set di variabili
___ Python mailing list
Python@lists.python.it http://lists.python.it/mailman/listinfo/python
 --
 Email.it, the professional e-mail, gratis per te: http://www.email.it/f
 
 Sponsor:
 Tutta la musica che vuoi sul tuo cellulare. Scarica le HIT

 Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=7513&d=20080131

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


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

2008-01-30 Per discussione Enrico Franchi

On Jan 30, 2008, at 6:54 PM, Java wrote:

> mmm senza quel testa = None, la variabil testa si vedrebbe fuori dal
> ciclo for?? Se si allora non ci vuole

E' una cosa che sorprende spesso anche me. Ti cito un passo del Python  
in a Nutshell.

A function's parameters, plus any variables that are bound (by  
assignment or by other binding statements) in the function body, make  
the function's local namespace, also known as local scope.

Direi che è abbastanza chiaro.

> mmm forse si, ma ora sono veramente fuso (tra lavoro e studio ho fatto
> 11 ore al pc :-( )
>>

Cerca comunque sempre di pensare in maniera pythonica, non di tradurre  
codice 'pensato' in altri linguaggi.
Con il tempo viene naturale.

C'era un vecchio adagio sul fatto che i programmatori Lisp fossero  
talmente abituati a soluzioni eleganti da tirarne fuori di  
particolarmente eleganti anche quando 'costretti' ad usare 'linguaggi  
da meno'.


> hem rimasugli di UML e Ingegneria del software.

Sigh, non si rendono nemmeno conto di quanto male faccia insegnare  
UML. :(

Ad ogni modo in *Python* usiamo direttamente il valore senza passare  
per i setter.
Questo si può fare perchè c'è  property che in caso di bisogno ti cava  
d'impiccio senza bisgno di modificare il codice.
Effettivamente in altri linguaggi passi proprio per dei getter  e  
setter.

La cosa per esempio è sensata in Java e in C++ (anche se in Java fra  
IDE, beans e tutto ce la si scavella). In Ruby al di la del fatto che  
pure hai un modo facile per creare getter e setter, a tutti gli  
effetti li stai usando (anche se non li definisci esplicitamente). In  
C# dalla regia dicono che pure ci sono delle properties.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


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

2008-01-30 Per discussione Java
Francesco Guerrieri ha scritto:
>
>
> # devo aggiornare questa lista
> rete = []
> # usando i dati di questa
> lista = [
> testa = null
> for elem in lista:
>if elem.getEtichetta() ==  lista[0]:
>   testa = elem
>else:
>   testa = Elemento()
>
> # da qui in poi lavoro su testa
>
>
> Non mi è chiaro il tuo problema
> Dall'esempio di codice che hai mandato, non c'è nessuno bisogno di 
> creare un nameholder testa
> (comunque sarebbe testa = None)
>
mmm senza quel testa = None, la variabil testa si vedrebbe fuori dal 
ciclo for?? Se si allora non ci vuole
> semplicemente nei due casi assegni testa a due oggetti diversi,
> di volta in volta o elem o Elemento()
> Ti faccio ntoare che il tuo codice assegna testa all'ULTIMO elem in 
> lista che abbia l'etichetta giusta.
Ultimo e unico, (se tutto è andato bene :-D)
>
> Ma forse il codice che volevi scrivere era:
>
> rete = [elem for elem in lista if elem.etichetta == qualcosa]
>
mmm forse si, ma ora sono veramente fuso (tra lavoro e studio ho fatto 
11 ore al pc :-( )
> ?
> Non mi piace molto neanche il metodo getEtichetta, non ti basta 
> leggere elem.etichetta?
hem rimasugli di UML e Ingegneria del software.
> ciao,
> Francesco
adieu
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


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

2008-01-30 Per discussione Francesco Guerrieri
On Jan 30, 2008 6:18 PM, Java <[EMAIL PROTECTED]> wrote:

> Prima di tutto chiedo perdono per il bombardamento di domande...
>
> Poi... ecco di cosa vrei bisogno (una riga di pseudocodice vale più di
> mille parole):
>
> # devo aggiornare questa lista
> rete = []
> # usando i dati di questa
> lista = [
> 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.
>
> Quello che ci faccio dopo è identico in entrambi i casi, ma senza valore
> "null" non so come fare
>
> 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...
>
> Non mi è chiaro il tuo problema
Dall'esempio di codice che hai mandato, non c'è nessuno bisogno di creare un
nameholder testa
(comunque sarebbe testa = None)

semplicemente nei due casi assegni testa a due oggetti diversi,
di volta in volta o elem o Elemento()
Ti faccio ntoare che il tuo codice assegna testa all'ULTIMO elem in lista
che abbia l'etichetta giusta.

Ma forse il codice che volevi scrivere era:

rete = [elem for elem in lista if elem.etichetta == qualcosa]

?
Non mi piace molto neanche il metodo getEtichetta, non ti basta leggere
elem.etichetta?
ciao,
Francesco
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


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

2008-01-30 Per discussione Y3s

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



> 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


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


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

2008-01-30 Per discussione Java
Prima di tutto chiedo perdono per il bombardamento di domande...

Poi... ecco di cosa vrei bisogno (una riga di pseudocodice vale più di 
mille parole):

# devo aggiornare questa lista
rete = []
# usando i dati di questa
lista = [http://lists.python.it/mailman/listinfo/python