小编ein*_*ger的帖子

围绕JSON数据包装python类,哪个更好?

序言:我正在针对提供JSON的服务编写python API.这些文件以JSON格式存储在磁盘上以缓存值.API应该对JSON数据进行有类访问,因此IDE和用户可以在运行时了解对象中的(只读)属性,同时还提供一些便利功能.

问题:我有两个可能的实现,我想知道哪个更好或'pythonic'.虽然我喜欢两者,但如果您想出更好的解决方案,我愿意接受建议.

第一个解决方案:定义和继承JSONWrapper虽然很好,但它非常冗长和重复.

class JsonDataWrapper:
    def __init__(self, json_data):
        self._data = json_data

    def get(self, name):
        return self._data[name]


class Course(JsonDataWrapper):
    def __init__(self, data):
        super().__init__(data)
        self._users = {}  # class omitted
        self._groups = {}  # class omitted
        self._assignments = {}

    @property
    def id(self): return self.get('id')

    @property
    def name(self): return self.get('full_name')

    @property
    def short_name(self): return self.get('short_name')

    @property
    def users(self): return self._users

    @users.setter
    def users(self, data):
        users = [User(u) for u in data]
        for user in users:
            self.users[user.id] = user
            # …
Run Code Online (Sandbox Code Playgroud)

python json api-design class wrapper

6
推荐指数
1
解决办法
2295
查看次数

标签 统计

api-design ×1

class ×1

json ×1

python ×1

wrapper ×1