[Python] Scope delle variabili.

Marco Giusti marco.giusti a posteo.de
Mar 3 Feb 2015 15:38:27 CET


On Tue, Feb 03 2015, Gollum1 wrote:
> Il 3 febbraio 2015 10:33, Paolo Di Ieso <paolodiieso a libero.it> ha scritto:
> >
> > I numeri sono oggetti immutabili per cui
> >
> > number_count += 1
> >
> > cioè
> >
> > number_count = number_count + 1
> >
> > crea un nuovo oggetto all'interno della funzione il cui scope è locale.
> 
> vero... sono un pollo...
> 
> devo trovare un'altra soluzione...
> 
> che potrebbe anche passare per l'uso di una classe per estrapolare i
> dati da un file XML,
> 
> il problema è come faccio poi a navigarli in modo coerente, nel senso
> che per ora tutti gli esempi che ho trovato si limitano a fare una
> stampa dei tag di apertura, dei contenuti, e dei tag di chiusura... ma
> quale potrebbe essere una struttura dati coerenete che mi permetta poi
> di navigare all'interno dei tag e prelevarne i dati? mantenendo nel
> contempo la loro gerarchia?
> 
> mi verrebbe in mente di utilizzare un dizionario, in cui la chiave è
> il tag, e per il valore usare il valore ritornato, ed eventualmente
> come valore potrebbe essere inserito un figlio, ma non credo che sia
> adatto se poi in realtà di figli me ne trovo più di uno allo stesso
> livello...

Prendiamo un caso semplice semplice (dalla documentazione ufficiale):

    import xml.etree.ElementTree as ET
    tree = ET.parse('country_data.xml')
    root = tree.getroot()

    # Reading the data from a string:
    # root = ET.fromstring(country_data_as_string)

    # As an Element, root has a tag and a dictionary of attributes:
    >>> root.tag
    'data'
    >>> root.attrib
    {}

    It also has children nodes over which we can iterate:
    >>>

    >>> for child in root:
    ...   print child.tag, child.attrib
    ...
    country {'name': 'Liechtenstein'}
    country {'name': 'Singapore'}
    country {'name': 'Panama'}


etree è molto semplice e ti offre già una struttura dati. Usa quello e
festa finita.

Ciao
m.


Maggiori informazioni sulla lista Python