You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
979 B
32 lines
979 B
class ReturnParams:
|
|
def __init__(self, **kwargs):
|
|
# 内部存储所有返回参数
|
|
self._data = dict(kwargs)
|
|
|
|
def __getattr__(self, name):
|
|
# 如果属性不存在,返回 None 而不是抛出异常
|
|
return self._data.get(name, None)
|
|
# try:
|
|
# return self._data[name]
|
|
# except KeyError:
|
|
# raise AttributeError(f"'ReturnParams' object has no attribute '{name}'")
|
|
|
|
def __setattr__(self, name, value):
|
|
# 特殊属性直接写入__dict__
|
|
if name == "_data":
|
|
super().__setattr__(name, value)
|
|
else:
|
|
self._data[name] = value
|
|
|
|
def __getitem__(self, key):
|
|
# 如果 key 不存在,返回 None
|
|
return self._data.get(key, None)
|
|
|
|
def __setitem__(self, key, value):
|
|
self._data[key] = value
|
|
|
|
def to_dict(self):
|
|
return self._data.copy()
|
|
|
|
def __repr__(self):
|
|
return f"{self.__class__.__name__}({self._data})"
|
|
|