序言:我正在针对提供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)