[Python-Dev] dict() enhancement idea?

Oren Tirosh oren-py-d@hishome.net
Thu, 21 Nov 2002 09:12:51 -0500

On Thu, Nov 21, 2002 at 01:51:15PM +0100, Just van Rossum wrote:
> I sometimes use an idiom like
>   def dictfromkeywords(**kwargs):
>       return kwargs
>   d = dictfromkeywords(
>           akey = 12,
>           anotherkey = "foo",
>           ...etc.
>   )

I assume that the motive is to get rid of the quotes around the key and
conceptually treat it as a "symbol" rather than as a string.  If that is 
the case it could apply to access as well as initialization.

class record(dict):
    def __init__(self, __initfrom=(), **kw):
        self.__dict__ = self
        dict.__init__(self, __initfrom)

    def __repr__(self):
        return "%s(%s)" % (self.__class__.__name__,
          ', '.join(['%s=%s' % (k, repr(v)) for k,v in self.items()]))

Fields can be accessed as either items or attributes of a record object.