获取类变量和值的字典

新手上路,请多包涵

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

第一个.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 可以用来设置类变量值一样将变量、值组合作为键、值传递给它一个字典。

原文由 Plaix 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 856
2 个回答

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

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

原文由 afkfurion 发布,翻译遵循 CC BY-SA 3.0 许可协议

是这样的吗?

   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}

原文由 nye17 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题