[PIPython] Costruzione e recupero dinamici

Giovanni Porcari giovanni.porcari
Gio 31 Mar 2005 14:11:10 CEST


Il giorno 31/mar/05, alle 10:25, Massimo Cecconi ha scritto:

> Ciao Giovanni, e scusa di che poi?? anzi ti ringrazio per la risposta:)
>
> Comunque no, non č quello che cercavo perchč non mi interessano gli 
> attributi ( a proposito a cosa serve sapere questi attributi?? 
> d'altronde li ho settati io no?? e cmq a cosa potrebbero servirmi in 
> futuro??), ma il valore in essi contenuti quindi ad esempio se nel 
> TEXT_CTRL digito 123 vorrei poter recuperare appunto il valore che č 
> "123"
>
> Spero di essermi spiegato un pochino meglio  ciauz :)
>

Massimo la getattr serve a questo. Dato il nome 'TEXT_CTRL' ne ritorna 
il valore. Quindi nel tuo esempio 123.

Ti faccio un esempio

class miaclasse(object):
     def __init__(self,x,y):
         self.x=x
         self.y=y

if __name__=='__main__':
     s=miaclasse(55,66)
     print 'x='+getattr(s,'x') # renderā x=55
     print 'y='+getattr(s,'y') # renderā y=66
     print 'z='+getattr(s,'z') # solleverā eccezione

     print 'x='+getattr(s,'x','non lo trovo') # renderā x=55
     print 'y='+ getattr(s,'y','non lo trovo') # renderā y=66
     print 'z='+getattr(s,'z','non lo trovo') # renderā z= 'non lo trovo'



se esegui questo codice verrā creato un oggetto s della classe 
'miaclasse' e gli attributi x e y
verranno settati ai valori passati nel costruttore.

Nell esempio vedi l'uso di getattr per prelevare i valori. Nota che la 
terza print solleva un eccezione perchč
nel caso l'attributo non esista (z in questo caso) non č stato previsto 
un default.

Nelle tre print seguenti invece si prevede un default e la richiesta di 
z fornisce comunque un valore. Di norma si usa per avere un default per 
valori opzionali.

Spero che ti possa essere utile. Se no significa che non ho davvero 
capito.

Ciao
G



More information about the Python mailing list