我正在研究一种方法,将所有类变量作为键和值返回为字典的值,例如我有:
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 可以用来设置类变量值,方法是将变量值组合作为键值传递给它。
答案 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}