[Tutor] How to load a dict into a dict subclass?

Christian Witts cwitts at compuscan.co.za
Tue Oct 27 13:45:28 CET 2009


Modulok wrote:
> List,
>
> I'm new to the list, (somewhat new to python too). My code feels
> hacky. I'd like to know if there is a more eloquent way (more below).
> If not, a general thumbs up from more experienced programmers would be
> great!
>
> Assume I have a dict, 'foo'. I also have my own class, 'Bar', which
> subclasses (i.e. is a derived class) of a dict. How do I eloquently
> get foo into an instace of Bar? Example:
>
>
> ### BEGIN CODE:
> class Bar(dict):
>    pass # Act like a dict for now.
>
> foo = {'a': 100, 'b': 200, 'c': 300} # This could be a function return value.
> myvar = Bar()
> # The hacky feeling part:
> for k,v in foo.items(): myvar[k] = v
>
> ### END CODE
>
> Obviously I can put the dict into an instance variable, but then
> methods like 'keys()' and such won't work. If that makes any sense...
>
> Thanks guys!
> -Modulok-
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
>   

You can use the built-in function for dictionaries called update.  So

 >>> class Bar(dict):
 >>>     pass

 >>> foo = {'a':100, 'b':200, 'c': 300}
 >>> myvar = Bar()
 >>> myvar.update(foo)
 >>> myvar
{'a': 100, 'c': 300, 'b': 200}

-- 
Kind Regards,
Christian Witts




More information about the Tutor mailing list