了解Python3.6 中新增加的特性,实际可执行的代码如下:
#-*-coding:utf-8 -*-
'''
'''
import asyncio
from typing import List
async def my_coroutine():
print('waiting for result1')
#PEP 526: Syntax for variable annotations
num:int = 10
result1:List[int] = []
#方式一:
async for t in phase1(num):
result1.append(t)
#方式二:PEP 530: Asynchronous Comprehensions
result1 = [t async for t in phase1(count=num) ]
print('waiting for result2')
result2 = await phase2(result1)
return (result1, result2)
# PEP 525: Asynchronous Generators:
async def phase1(count:int):
'''
在coroutine 函数中使用yield
'''
print('in phase1')
for t in range(count):
yield t
#return 'result1'
async def phase2(arg:List[int]):
print('in phase2')
if isinstance(arg,list):
return 'result2:{}'.format(len(arg) )
event_loop