awaitable 可等待物件 md

2021-10-01 06:39:13 字數 1061 閱讀 9442

能在 await 表示式中使用的物件。可以是 coroutine 或是具有__await__()方法的物件。參見 pep 492。

注意可等待物件有兩種:

下面這段**就是 awaitable 抽象基類:

class

awaitable

(metaclass=abcmeta)

: __slots__ =()

@abstractmethod

def__await__

(self)

:# 必須返回乙個 iterator

yield

@classmethod

def__subclasshook__

(cls, c)

:if cls is awaitable:

return _check_methods(c,

"__await__"

)return notimplemented

async def復合語句建立的函式,它返回的是乙個coroutine物件,而剛好coroutine繼承於awaitable

asyncio包中有個函式,接受乙個awaitable, 通過yield from awaitable.__await__()來**訪問可等待物件的__await__方法返回的可迭代物件。

# asyncio.tasks.py

@coroutine

def_wrap_awaitable

(awaitable)

:"""helper for asyncio.ensure_future().

wraps awaitable (an object with __await__) into a coroutine

"""return

(yield

from awaitable.__await__(

))

可等待計時器

該核心物件類似於計時器。當然,它和使用者模式下的計時器是有區別的。使用createwaitabletimer函式可以建立乙個可等待計時器核心物件。用setwaitabletimer函式來對可等待計時器核心物件進行設定。另外可等待計時器核心物件還可以以非同步 asynchronous 方式呼叫函式 a...

可迭代物件

可迭代物件 1.生成器 2.元組 列表 集合 字典 字串 如果判斷乙個物件可迭代?from collections import iterable list1 1,2,3,4,5,6,7,8,9 c isinstance list1,iterable print c 迭代是訪問結合元素的一種方式。迭...

可迭代物件

目錄一 可迭代物件 1.什麼是迭代器?迭代取值的工具 2.什麼是迭代?迭代既更新換代 每次的更新都必須依賴於上一次的結果 3.可迭代物件內建有 iter 方式的都稱之為可迭代物件 內建的意思是可以通過點的方式直接檢視到的 針對雙下劃線開頭 雙下劃線結尾的方式 最為專業標準的讀法為 雙下方法名 物件導...