问答详情
源自:3-3 实现网络请求处理器Handler类

请教一个问题

你好,9:45秒的self.rfile = self.request.makefile('rb'),这里的makefile是什么,没有接触过还望指教。去百度发现说makefile是什么古老的方法之类,看的迷糊。

提问者:Immortal7 2020-06-03 13:21

个回答

  • qq_慕斯0488176
    2020-08-01 16:33:38

    我是这么理解的:

    我的机器是Zorin OS

    先看socket.py(ctrl+左击可以查看), 找到accept()函数,可以看到其实它返回两个对象,第一个是一个socket对象,第二个是地址信息,那么,老师程序中的request本质上就是一个socket对象了,在socket类中查找makefile方法,如下所示:

    def makefile(self, mode="r", buffering=None, *,
                 encoding=None, errors=None, newline=None):
        """makefile(...) -> an I/O stream connected to the socket
    
        The arguments are as for io.open() after the filename, except the only
        supported mode values are 'r' (default), 'w' and 'b'.
        """
        #

    emmm 翻译一下就是说 返回了一个连接到套接字上的I/O流

    当然 你可以在自己的机器上查看查看,只是我的机器上是这样的!