looking for standard/builtin dict-like data object
Cameron Simpson
cs at zip.com.au
Mon Aug 10 23:40:49 EDT 2015
On 10Aug2015 23:22, Vladimir Ignatov <kmisoft at gmail.com> wrote:
>In my code I often use my own home-brewed object for passing bunch of
>data between functions. Something like:
>
>class Data(object):
> def __init__ (self, **kwargs):
> self.__dict__ = kwargs
>....
>
>return Data(attr1=..., attr2=..., attr3=...)
>
>Logically it works like plain dictionary but with nice result.attrX
>syntax on client side (instead of resut['attrX']). Overall I am
>pretty happy with this approach except that I need to drag Data class
>around my projects and import its module in every code producing data.
I've got a base class called "O" like that:
https://pypi.python.org/pypi/cs.obj/
>I am curious if anybody knows similar "dummy" class located in
>standard libraries? I'd be glad to use it instead.
namedtuple initialises and accesses like that:
>>> from collections import namedtuple
>>> Klass = namedtuple('Klass', 'a b c')
>>> o1 = Klass(1,2,3)
>>> o1
O(a=1, b=2, c=3)
>>> o1.b
2
>>> o2 = Klass(a=1,c=3,b=2)
>>> o2
O(a=1, b=2, c=3)
namedtuple makes a factory for making particular flavours.
And the result us a tuple, not a dict.
I also thought the stdlib had some kind of "namespace" class with this kind of
API, but I can't find it now:-(
Cheers,
Cameron Simpson <cs at zip.com.au>
Always code as if the guy who ends up maintaining your code will be a violent
psychopath who knows where you live.
- Martin Golding, DoD #0236, martin at plaza.ds.adp.com
More information about the Python-list
mailing list