Python 从Twisted中的http.Request实例访问通道

Python 从Twisted中的http.Request实例访问通道,python,twisted,twisted.web,Python,Twisted,Twisted.web,我正在做一个项目,它使用Twistedweb工具,但不使用高级web框架。我如何访问创建某个http.Request实例的HTTPChannel实例(twistedprotocol) 我看到http.Request的构造函数将通道作为参数,但没有方法/属性进一步访问它 另外,虽然我可以通过工厂属性从频道访问HTTPFactory实例,但我可以直接从请求实例访问工厂吗?看起来频道可以直接在请求上访问。考虑请求。 def __init__(self, channel, queued): ""

我正在做一个项目,它使用Twisted
web
工具,但不使用高级web框架。我如何访问创建某个
http.Request
实例的
HTTPChannel
实例(twisted
protocol

我看到
http.Request
的构造函数将通道作为参数,但没有方法/属性进一步访问它


另外,虽然我可以通过
工厂
属性从频道访问
HTTPFactory
实例,但我可以直接从请求实例访问工厂吗?

看起来频道可以直接在
请求
上访问。考虑<代码>请求。
def __init__(self, channel, queued):
    """                                                                                                                                     
    @param channel: the channel we're connected to.                                                                                         
    @param queued: are we in the request queue, or can we start writing to                                                                  
        the transport?                                                                                                                      
    """
    self.notifications = []
    self.channel = channel
    self.queued = queued
    ...

self.channel=channel
似乎正是您要查找的内容。

是的,这就像我正在使用的包装器类。但也许有一个原因,为什么它不能立即访问?我不理解这个评论。这是
twisted.web.http.Request.\uuuu init\uuuu
,不是包装类。它有一个
频道
属性。我不知道“不可立即访问”是什么意思。好吧,通过重新实现构造函数,您正在为要使用的请求而不是原始实现创建一个包装器。“不能立即访问”-这意味着在请求的原始实现中,您不能使用实例访问通道。这就是构造函数。这不是构造函数的重新实现。我从源代码复制/粘贴。是。你说得对。当我尝试从
请求
过程
方法之外访问
频道
时,出现了我的问题。我接受了这个答案,我将很快发布另一个问题,解释到底发生了什么。谢谢你的耐心。