asyncio 函数未定义 python 3.6

asyncio function not defined python 3.6

我在这方面遇到麻烦已经有一段时间了。声明异步函数时,如:

async def init(loop):

然后我调用这个函数 returns a:

NameError: name 'init' is not defined

代码如下所示:

class Server:

    def __init__(self, port):
        asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
        loop = asyncio.get_event_loop()
        server = loop.run_until_complete(init(loop))

        print("Serving on {}".format(server.sockets[0].getsockname()))
        try:
            loop.run_forever()
        except KeyboardInterrupt:
            print("\rclosing the server")
            pass

        server.close()
        loop.run_until_complete(server.wait_closed())
        loop.close()

    async def init(loop):
        server = await loop.create_server(handle_request, '127.0.0.1', 8881)
        return server

    async def handle_request():

你能指出的任何方向都会有所帮助。 谢谢!

def init() 好像在你的 class 里面。通过取消缩进将其移出 class:

class Server:

    def __init__(self, port):
        #....
        loop.close()

    # IT SHOULD NOT BE HERE
#IT SHOULD BE HERE!!! 
async def init(loop):
    server = await loop.create_server(handle_request, '127.0.0.1', 8881)
    return server