내가 기다릴 수있는 미래를 반환하는 디스크립터를 쓸 수있다.python3.5에서 비동기 적으로 디스크립터를 설정하기
class AsyncDescriptor:
def __get__(self, obj, cls=None):
# generate some async future here
return future
def __set__(self, obj, value):
# generate some async future here
return future
class Device:
attr=AsyncDescriptor()
device=Device()
이제 coroutine의 값을 value=await device.attr
으로 얻을 수 있습니다.
이 속성은 어떻게 설정합니까?
await device.attr=5
-> 구문 에러 : 표현을 기다리고 할당 할 수 없습니다await setattr(device, 'attr', 5)
-> 형식 오류 : 개체 NoneType 표현 '기다리고'에서 사용할 수 없습니다device.attr=5
-> RuntimeWarning : 코 루틴 '__set__' 결코 기다려지지 않았습니다.
'__set__'은 (는) 아무 것도 반환하지 않아야합니다. 'value'를 비동기식으로 해결하고 싶습니까? – jonrsharpe
예, 이것이 목표가 될 것입니다. –
그러나 예는 모두 미래가 아니라 가치를 전달하고 있습니다. – jonrsharpe