[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