await
생성자 또는 클래스 본문에서 클래스를 어떻게 정의 할 수 있습니까?
예를 들어 내가 원하는 것 :
import asyncio
# some code
class Foo(object):
async def __init__(self, settings):
self.settings = settings
self.pool = await create_pool(dsn)
foo = Foo(settings)
# it raises:
# TypeError: __init__() should return None, not 'coroutine'
또는 클래스 본문 속성이있는 예 :
class Foo(object):
self.pool = await create_pool(dsn) # Sure it raises syntax Error
def __init__(self, settings):
self.settings = settings
foo = Foo(settings)
내 솔루션 (하지만 더 우아한 방법을보고 싶습니다)
class Foo(object):
def __init__(self, settings):
self.settings = settings
async def init(self):
self.pool = await create_pool(dsn)
foo = Foo(settings)
await foo.init()
__new__
는 우아하지 않을 수도 있지만,