例如,我有几种处理程序,它们都将socket object作为请求处理,但是我必须决定请求应该去哪个处理程序,因此我必须分析请求的数据,但是因为我已阅读数据,请求中的数据将不完整。
代码可在此描述:
def handle_request(request,client_address,server):
request_type = getType(request)
if request_type == 'typeA':
TypeAHandler(request,client_address,server)
elif request_type == 'typeB':
TypeBHandler(request,client_address,server)
elif request_type == 'typeC':
TypeCHandler(request,client_address,server)
...
有没有办法回滚请求的数据,或克隆请求,所以我可以简单地完成这项任务?
答案 0 :(得分:3)
Python使用duck typing。如果某个看起来像一个套接字,它就可以用作套接字。
您可以编写一个自定义套接字对象,该对象首先提供已读取的数据,然后从实际套接字提供其余信息。对于处理程序来说,整个过程将是透明的,因此不需要更改代码。