Python 上下文變數
上下文變數的值可以根據其上下文而有所不同。與執行緒本地儲存(每個執行執行緒可能對變數具有不同的值)不同,上下文變數在一個執行執行緒中可能存在多個上下文。這對於跟蹤併發非同步任務中的變數很有用。
ContextVar 類用於宣告和使用上下文變數。
import contextvars
name = contextvars.ContextVar("name", default = 'Hello')當在當前上下文中找不到變數的值時,可選的預設引數由 ContextVar.get() 返回。
name: 變數的名稱。這是一個只讀屬性。
ContextVar 類中定義了以下方法
| get() | 返回當前上下文中上下文變數的值。如果在當前上下文中沒有變數的值,則該方法將 -
|
| set() | 呼叫以設定當前上下文中上下文變數的新值。 |
| reset() | 將上下文變數重置為建立令牌的 ContextVar.set() 使用之前的值。 |
context vars 模組中的 Context 類是上下文變數與其值的對映。
Context(): 建立一個空的上下文,其中不包含任何值。
要獲取當前上下文的副本,請使用 copy_context() 函式。
run(callable, *args, **kwargs) 方法在呼叫 run 方法的上下文物件中執行 callable(*args, **kwargs) 程式碼,並返回執行結果。callable 對任何上下文變數所做的任何更改都將包含在上下文物件中。當從多個作業系統執行緒呼叫同一個上下文物件或遞迴呼叫時,該方法會引發 RuntimeError 異常。
| copy() | 返回上下文物件的淺複製。 |
| context[var] | 返回 var 上下文變數的值。如果在上下文物件中未設定該變數,則會引發 KeyError 異常。 |
| get() | 如果上下文物件中存在上下文變數的值,則返回該值;否則,返回預設值。如果未給出預設值,則返回 None。 |
| iter() | 返回儲存在上下文物件中的變數的迭代器。 |
| len() | 返回在上下文物件中設定的變數的數量。 |
| keys() | 返回上下文物件中所有變數的列表。 |
| values() | 返回上下文物件中所有變數值的列表。 |
| items() | 返回包含上下文物件中所有變數及其值的 2 元組列表。 |
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP