获取类变量和值的字典

时间:2014-01-24 00:36:20

标签: python class dictionary class-variables

我正在研究一种方法,将所有类变量作为键和值返回为字典的值,例如我有:

first.py

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

然后在second.py中,我应该可以调用一个方法或某些东西来返回这样的字典

import first

dict = first.return_class_variables()
dict
然后dict会是这样的:

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

这只是一个解释这个想法的场景,当然我不希望它那么容易,但我会喜欢如果有关于如何处理这个问题的想法就像 dict 可以用来设置类变量值,方法是将变量值组合作为键值传递给它。

3 个答案:

答案 0 :(得分:21)

您需要过滤掉函数和内置类属性。

>>> 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}

答案 1 :(得分:1)

A.__dict__上使用字典理解并过滤掉以__开头和结尾的键:

>>> class A:
        a = 3
        b = 5
        c = 6
...     
>>> {k:v for k, v in A.__dict__.items() if not (k.startswith('__')
                                                             and k.endswith('__'))}
{'a': 3, 'c': 6, 'b': 5}

答案 2 :(得分:1)

这样的东西?

  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))

给出了

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