Last page update: November 10, 2011
A Bag is a Genro class used to create a multi-purpose datastructure, and it is ideal for storing and retrieving any kind of complex hierarchical data in tidily and deeply way.
Nested elements can be accessed with a path of keys joined with dots:
>>> mybag['foo.bar'] = 'spam' >>> x = mybag['foo.bar']A Bag takes some Dictionary features:
- Both Bag and Dictionary are made by a set of key:value pairs.
- Values are accessed using a key (called path).
- Both Bag and Dictionary can shrink or grow as needed.
- Both Bag and Dictionary can be nested.
- A Bag inherit some Dictionary methods [1] and some syntax forms (that we will document in the following Bag documentation pages).
Most important, a Bag carries some features that Dictionary hasn’t got:
Dictionary Bag A Dictionary is a mutable unordered set of key:value pairs. A Bag is a unmutable ordered set of key:value pairs. A Dictionary is NOT hierarchic. A Bag IS hierarchic. A Dictionary is NOT ordered. A Bag IS ordered. Keys must be unique. You can have different values with the same key.
Footnotes:
| [1] | Check the Dictionary methods implemented by Bag and other related methods section for further details. |
| [2] | You might be wondering why we call “label” the key argument of a Bag: its origin is storical: the Bag has been created before Genro Team began to use Python language. |