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

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})"