Ultima attività 10 months ago

這段 Python 程式碼 使用 contextlib.contextmanager 來建立一個 自訂的上下文管理器 (ic_disabled()),用於 暫時停用 icecream (ic) 的輸出,並在 離開上下文後復原原始狀態。

timmy ha revisionato questo gist 10 months ago. Vai alla revisione

Nessuna modifica

timmy ha revisionato questo gist 10 months ago. Vai alla revisione

1 file changed, 27 insertions

ic_context.py(file creato)

@@ -0,0 +1,27 @@
1 + # 引用python內建模組contextlib中的contextmanager
2 + from contextlib import contextmanager
3 +
4 + # 將icecream模組簡稱為ic
5 + from icecream import ic # 引用icecream模組
6 +
7 + # 設定icecream的輸出選項,包含上下文
8 + ic.configureOutput(includeContext=True)
9 +
10 + # 定義ic_disabled函式為一個上下文管理器
11 + @contextmanager
12 + def ic_disabled():
13 + # 將ic.enabled的原始值存入_enabled
14 + _enabled = ic.enabled
15 + # 將ic.enabled設為False,關閉ic()的輸出
16 + ic.enabled = False
17 + # 使用yield來暫時執行代碼區塊內的程式
18 + yield
19 + # 離開代碼區塊後,將ic.enabled恢復原始值
20 + ic.enabled = _enabled
21 +
22 + ic(42) # 會輸出: ic| 42: 42
23 +
24 + with ic_disabled():
25 + ic("這段程式不會印出") # `ic()` 被停用,不會顯示輸出
26 +
27 + ic("這段程式會印出") # `ic()` 被恢復,會輸出: ic| "這段程式會印出": 這段程式會印出
Più nuovi Più vecchi