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 mybag
0 - (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