2 回答

TA贡献1829条经验 获得超6个赞
问题出在行:
super(Request, self).__init__(*args, **kwargs)
这将导致在您的实例上调用该类的__init__方法,这是没有意义的。因此,只需摆脱那条线。HttpRequestRequest
另外,我不明白为什么首先要继承子类。由于python具有鸭子类型,并且您已经完全包装了内部对象,所以为什么不这样做:
class Request(object):
def __init__(self, request, *args, **kwargs):
self._original_request = request
def __getattr__(self, name):
return getattr(self._original_request, name)
def __setattr__(self, name, value):
if name == '_original_request':
super(Request, self).__setattr__(name, value)
else:
self._original_request.__setattr__(name, value)
def __getitem__(self, key):
return self._original_request[key]
def __setitem__(self, key, value):
self._original_request[key] = value

TA贡献1862条经验 获得超7个赞
堆栈跟踪显示了问题所在:代码试图将属性设置为self._original_request
而不是self.__dict__
。
阅读Python文档以定制属性访问。
添加回答
举报