Scrivere e leggere valori¶
Abbiamo detto che si possono inserire valori nelle bag con la sintassi a parentesi quadre come si farebbe con un dizionario, ma esistono due metodi specifici e più espressivi per andare a riempire una Bag.
setItem
e getItem`
.
Il metodo setItem
prende come primo parametro la label o path (se parliamo di Bag gerarchica) e secondo parametro il valore.
Rispetto all’accesso con le parentesi quadre questo metodo consente di scrivere contestualmente anche gli attributes come kwargs (parametri nominati).
>>> mybag = Bag()
>>> mybag.setItem('italy',None, population=60795612, language='Italian', capital='Rome')
>>> mybag.setItem('italy.regions.lombardy',Bag(), population=10001496, capital='Milan')
>>> mybag.setItem('italy.regions.tuscany',Bag(), population=3749430, capital='Florence')
>>> regions = mybag.getItem('italy.regions')
>>> lom_bag = regions.getItem('lombardy')
>>> tus_bag = regions['tuscany']
>>> tus_bag.setItem('cities.florence', None, populaltion=381678)
Se stampo mybag
ottengo questo
>>> print mybag0 - (Bag) italy: <capital='Rome' language='Italian' population='60795612'> 0 - (Bag) regions: 0 - (Bag) lombardy: <capital='Milan' population='10001496'> 1 - (Bag) tuscany: <capital='Florence' population='3749430'> 0 - (Bag) cities: 0 - (None) florence: None <populaltion='381678'>
Autore della sezione: Giovanni Porcari