Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

getting a dictionary of class variables and values

Tags:

I am working on a method to return all the class variables as keys and values as values of a dictionary , for instance i have:

first.py

class A:     a = 3     b = 5     c = 6 

Then in the second.py i should be able to call maybe a method or something that will return a dictionary like this

import first  dict = first.return_class_variables() dict 

then dict will be something like this:

{'a' : 3, 'b' : 5, 'c' : 6} 

This is just a scenario to explain the idea, of course i don't expect it to be that easy, but i will love if there are ideas on how to handle this problem just like dict can be used to set a class variables values by passing to it a dictionary with the variable, value combination as key, value.

like image 521
Plaix Avatar asked Jan 24 '14 00:01

Plaix


2 Answers

You need to filter out functions and built-in class attributes.

>>> class A: ...     a = 3 ...     b = 5 ...     c = 6 ...  >>> {key:value for key, value in A.__dict__.items() if not key.startswith('__') and not callable(key)} {'a': 3, 'c': 6, 'b': 5} 
like image 167
afkfurion Avatar answered Sep 20 '22 19:09

afkfurion


Something like this?

  class A(object):       def __init__(self):           self.a = 3           self.b = 5           self.c = 6    def return_class_variables(A):       return(A.__dict__)     if __name__ == "__main__":       a = A()       print(return_class_variables(a)) 

which gives

{'a': 3, 'c': 6, 'b': 5} 
like image 22
nye17 Avatar answered Sep 19 '22 19:09

nye17