上下文管理器與 with 語句
1、概念
上下文管理協議(Context Management Protocol):包含enter() 和exit() 方法,支援該協議的物件要實現這兩個方法
上下文管理器(Context Manager):支援上下文管理協議的物件
使用 with 語句呼叫上下文管理器,來構建對資源的自動建立和釋放
2、with 語句基本語法
with expression [as variable]:
with-block
3、上下文管理器
class Context:
def __enter__(self):
print("enter方法")
def __exit__(self, exc_type, exc_val, exc_tb):
print("exit方法")
with Context() as c:
print(c)
執行原理如下:
1、執行 Context(),返回一個上下文管理器物件
2、自動呼叫上下文管理器的enter方法,如果使用了 as 子句,則將enter() 方法的返回值賦值給 as 子句中的 c
3、執行 with 中的程式碼塊
4、不論執行過程中是否發生異常,都會執行上下文管理器中的exit() 方法,exit 方法負責清理工作。如果執行過程中沒有異常,則以 None 作為引數呼叫exit;
如果執行過程中發生了異常,則使用exit(exc_type, exc_val, exc_tb) 呼叫
相關文章
- flask之控制語句 if 語句與for語句Flask
- 完全理解關鍵字”with”與上下文管理器
- insert into select語句與select into from語句
- Pyhton提高:with上下文管理器
- 表示式與語句
- ORACLE 資料庫 查詢語句與DML語句Oracle資料庫
- 上下文管理器和 else 塊
- Python分享之上下文管理器Python
- Python深入02 上下文管理器Python
- Python - Context Manager 上下文管理器PythonContext
- JavaScript break與continue語句JavaScript
- 全網最適合入門的物件導向程式設計教程:26 異常捕獲-上下文管理器和 with 語句物件程式設計
- Python 簡單理解 with 上下文管理器Python
- Python中表示式與語句Python
- python上下文管理器closing的應用Python
- Python條件語句與迴圈Python
- 分支語句和迴圈語句
- with open() as 的用法 和 with上下文管理器(Context manager)Context
- 什麼是Python中Context上下文管理器PythonContext
- Python上下文管理器你學會了嗎?Python
- DDD中限界上下文與通用語言的作用
- 【SQL】14 UNION 操作符、SELECT INTO 語句、INSERT INTO SELECT 語句、CREATE DATABASE 語句、CREATE TABLE 語句SQLDatabase
- if 語句
- if語句
- JavaScript switch與if else語句的區別JavaScript
- [20240320]空格與sqlpus的sql語句.txtSQL
- makefile--if條件判斷語句的語法與使用
- 日期與字串的互相轉換SQL語句字串SQL
- 【js迴圈語句】for與while的區別JSWhile
- AWK if(條件)語句與迴圈簡介
- Linux下邏輯測試語句引數和流程控制語句 if語句Linux
- Java中如何解析SQL語句、格式化SQL語句、生成SQL語句?JavaSQL
- JavaScript 語句JavaScript
- 衛語句
- JavaScript for in 語句JavaScript
- if衛語句
- 控制語句
- break語句