2017-03-29 11 views
0

これでちょっと困っていました。以下のような非同期関数を宣言する場合:asyncio関数が定義されていませんpython 3.6

async def init(loop): 

し、私はそれを返す関数を呼び出す:

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(): 

ます任意の方向を:ここで

NameError: name 'init' is not defined 

は、コードのすべてがどのように見えるかです私を助けてくれるかもしれません。 ありがとう!

答えて

0

def init()はあなたのクラスの中にあります。

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 
+0

'handle_request'はおそらく同じ問題を抱えています。 – dirn

+0

ありがとうございます。それは問題を解決しました! – Kenton

関連する問題