On 03/28/2013 07:18 PM, Daniele Zambelli wrote:
Grazie, รจ proprio quello che mi serviva... getattr continua a rimanere un lato oscuro di Python per me.

Ciao Daniele, l'utilizzo di getattr() e' molto semplice. Se hai un oggetto e
vuoi ottenere un suo attributo, solitamente usi la sintassi con il delimitatore
punto:

>>> import sys
>>> sys.version # Uso il delimitatore punto
'3.3.0 (default, Sep 29 2012, 17:14:58) \n[GCC 4.7.2]'

Nel tuo caso pero' non conoscevi gli attributi del modulo a priori, per cui a runtime hai fatto in modo di costruire una lista contenente i loro nomi (stringhe),
e poi in qualche modo volevi ottenere gli attributi a partire dai nomi.
La funzione built-in getattr() svolge esattamente questo compito:

>>> getattr(sys, 'version') # Restituisci l'attibuto di nome 'version' del modulo `sys`
'3.3.0 (default, Sep 29 2012, 17:14:58) \n[GCC 4.7.2]'

Ha restituito l'attributo `sys.version`:

>>> getattr(sys, 'version') is sys.version
True

--
Marco Buttu

INAF Osservatorio Astronomico di Cagliari
Loc. Poggio dei Pini, Strada 54 - 09012 Capoterra (CA) - Italy
Phone: +39 070 71180255
Email: mbu...@oa-cagliari.inaf.it

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

Rispondere a