該模塊由 Tornado 內(nèi)部使用。 不一定期望此處定義的函數(shù)和類對(duì)其他應(yīng)用程序有用,但如果有用,它們會(huì)在此處記錄。
該模塊的一個(gè)面向公眾的部分是 ?Configurable
類及其配置方法,它成為其子類接口的一部分,包括 ?AsyncHTTPClient
?、?IOLoop
和 ?Resolver
exception tornado.util.TimeoutError
?with_timeout
和 ?IOLoop.run_sync
? 引發(fā)的異常。
在 5.0 版更改: 將 ?tornado.gen.TimeoutError
? 和 ?tornado.ioloop.TimeoutError
? 統(tǒng)一為 ?tornado.util.TimeoutError
?。 兩個(gè)以前的名字都保留為別名。
使字典表現(xiàn)得像一個(gè)對(duì)象,具有屬性樣式訪問。
流式 ?gzip
解壓縮器。
該接口類似于 ?zlib.decompressobj
? 的接口(沒有一些可選參數(shù),但它理解 ?gzip
表頭和校驗(yàn)和)。
解壓縮一個(gè)塊,返回新的可用數(shù)據(jù)。
一些數(shù)據(jù)可能會(huì)被緩沖以供以后處理; 當(dāng)沒有更多的輸入數(shù)據(jù)時(shí),必須調(diào)用 ?flush
以確保所有數(shù)據(jù)都已處理。
如果給定了 ?max_length
?,則 ?unconsumed_tail
中可能會(huì)遺留一些輸入數(shù)據(jù); 如果它不為空,您必須檢索此值并將其傳遞回對(duì) ?decompress
的 ?future
?調(diào)用。
返回剩余的未消耗部分
返回解壓縮尚未返回的任何剩余緩沖數(shù)據(jù)。
還檢查諸如截?cái)噍斎胫惖腻e(cuò)誤。 在flush
之后不能對(duì)該對(duì)象調(diào)用其他方法。
按名稱導(dǎo)入對(duì)象。
?import_object('x')
等價(jià)于?import x
?。import_object('x.y.z')
? 等價(jià)于 ?from x.y import z
?。
>>> import tornado.escape
>>> import_object('tornado.escape') is tornado.escape
True
>>> import_object('tornado.escape.utf8') is tornado.escape.utf8
True
>>> import_object('tornado') is tornado
True
>>> import_object('tornado.missing_module')
Traceback (most recent call last):
...
ImportError: No module named missing_module
提供來自 ?Exception
對(duì)象的 ?errno
?。
在某些情況下,沒有設(shè)置 ?errno
屬性,因此我們將 ?errno
從 ?args
中提取出來,但是如果有人在沒有任何 ?args
的情況下實(shí)例化 ?Exception
,您將收到元組錯(cuò)誤。 所以這個(gè)函數(shù)抽象了所有的行為,給你一個(gè)安全的方法來獲取 ?errno
?。
取消轉(zhuǎn)義由 ?re.escape
? 轉(zhuǎn)義的字符串。
對(duì)于 ?re.escape
? 無法生成的正則表達(dá)式可能會(huì)引發(fā) ?ValueError
?(例如,包含 ?\d
? 的字符串不能被轉(zhuǎn)義)。
可配置接口的基類。
可配置接口是一個(gè)(抽象)類,其構(gòu)造函數(shù)充當(dāng)其實(shí)現(xiàn)子類之一的工廠函數(shù)。 可以在運(yùn)行時(shí)使用 ?configure
全局設(shè)置實(shí)現(xiàn)子類及其初始化程序的可選關(guān)鍵字參數(shù)。
通過使用構(gòu)造函數(shù)作為工廠方法,接口看起來像一個(gè)普通的類,isinstance 像往常一樣工作等。這種模式在實(shí)現(xiàn)的選擇可能是全局決策時(shí)最有用(例如,當(dāng) ?epoll
可用時(shí),總是使用 它而不是 ?select
?),或者當(dāng)以前的整體類被拆分為專門的子類時(shí)。
可配置子類必須定義類方法?configurable_base
和?configurable_default
?,并使用實(shí)例方法?initialize
而不是?__init__
?。
在 5.0 版更改: 現(xiàn)在可以在類層次結(jié)構(gòu)的多個(gè)級(jí)別指定配置。
返回可配置層次結(jié)構(gòu)的基類。
這通常會(huì)返回定義它的類。 (不一定與cls
classmethod 參數(shù)相同)。
如果沒有配置,則返回要使用的實(shí)現(xiàn)類。
初始化一個(gè)可配置的子類實(shí)例。
可配置類應(yīng)該使用?initialize
?而不是 ?__init__
?。
設(shè)置基類實(shí)例化時(shí)使用的類。
關(guān)鍵字參數(shù)將被保存并添加到傳遞給構(gòu)造函數(shù)的參數(shù)中。 這可用于為某些參數(shù)設(shè)置全局默認(rèn)值。
返回當(dāng)前配置的類。
替換 (?args
?、?kwargs
)鍵值對(duì)中的一個(gè)值。
檢查函數(shù)簽名以按名稱查找參數(shù),無論它是通過位置還是關(guān)鍵字傳遞。 用于裝飾器和類似的包裝器。
返回命名參數(shù)的舊值而不替換它。
如果參數(shù)不存在,則返回默認(rèn)值。
將 ?args
?、?kwargs
中的命名參數(shù)替換為 ?new_value
?。
返回? (old_value, args, kwargs)
?。 返回的 ?args
?和 ?kwargs
對(duì)象可能與輸入對(duì)象不同,或者輸入對(duì)象可能發(fā)生了變異。
如果未找到命名參數(shù),則將 ?new_value
添加到 ?kwargs
中,并且 ?None
將作為 ?old_value
返回。
等同于 ?td.total_seconds()
?(在 Python 2.7 中引入)。
更多建議: