Python dictionary from an object's fields -


do know if there built-in function build dictionary arbitrary object? i'd this:

>>> class foo: ...     bar = 'hello' ...     baz = 'world' ... >>> f = foo() >>> props(f) { 'bar' : 'hello', 'baz' : 'world' } 

note: should not include methods. fields.

note best practice in python 2.7 use new-style classes (not needed python 3), i.e.

class foo(object):    ... 

also, there's difference between 'object' , 'class'. build dictionary arbitrary object, it's sufficient use __dict__. usually, you'll declare methods @ class level , attributes @ instance level, __dict__ should fine. example:

>>> class a(object): ...   def __init__(self): ...     self.b = 1 ...     self.c = 2 ...   def do_nothing(self): ...     pass ... >>> = a() >>> a.__dict__ {'c': 2, 'b': 1} 

a better approach (suggested robert in comments) builtin vars function:

>>> vars(a) {'c': 2, 'b': 1} 

alternatively, depending on want do, might nice inherit dict. class already dictionary, , if want can override getattr and/or setattr call through , set dict. example:

class foo(dict):     def __init__(self):         pass     def __getattr__(self, attr):         return self[attr]      # etc... 

Comments

Popular posts from this blog

c++ - How do I get a multi line tooltip in MFC -

asp.net - In javascript how to find the height and width -

c# - DataTable to EnumerableRowCollection -