I\'ve started to use constructs like these:
class DictObj(object): def __init__(self): self.d = {} def __getattr__(self, m): return s
It's not bad if it serves your purpose. "Practicality beats purity".
I saw such approach elserwhere (eg. in Paver), so this can be considered common need (or desire).