首页 > 解决方案 > 如何将类变量作为字典返回?

问题描述

我正在尝试在我的班级中编写一个方法并尝试以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}

但是不能迭代像那种类型的返回错误。

标签: pythonooppython-class

解决方案


类不能迭代;不过它的__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

您需要对字典的键进行一些过滤,因为除了您创建的属性之外,该类可能还有其他属性。


推荐阅读