python - 如何将类变量作为字典返回?
问题描述
我正在尝试在我的班级中编写一个方法并尝试以dict
.
class Test(object):
location = 'Dhaka'
@classmethod
def get_items(cls):
items = dict()
for item in cls:
items[item.name] = item.value
return items
class NewTest(Test):
lat = 4444
我试图得到以下结果:
print(NewTest.get_items())
{'location': 'Dhaka', 'lat': 4444}
但是不能迭代像那种类型的返回错误。
解决方案
类不能迭代;不过它的__dict__
属性可以。
@classmethod
def get_items(cls):
items = dict()
# Loop defined enums
for item in cls.__dict__:
if item == "__module__":
continue
items[item] = cls.__dict__[item]
# return in tuple
return items
您需要对字典的键进行一些过滤,因为除了您创建的属性之外,该类可能还有其他属性。