第五十八節,上下文管理

上下文管理python

上下文管理就是在執行一段代碼塊的時候,經過一個裝飾器函數,在執行代碼塊以前到裝飾器函數裏作一個操做,而後執行代碼塊,執行代碼塊以後再到裝飾器函數裏作另一個操做函數

 

要使用上下文管理首先要 import contextlib   導入上下文管理模塊spa

@contextlib.contextmanager 定義上下文管理裝飾器,寫在下文管理裝飾器函數上面code

 

yield 遇到yield,跳出裝飾器函數,執行代碼塊後,在回到yield這裏向下執行blog

 

with 執行上下文管理裝飾器,後面寫要執行的下文管理裝飾器名稱,裏面寫代碼塊it

上下文管理使用代碼class

#!/usr/bin/env python
# -*- coding:utf8 -*-
import contextlib   #導入上下文管理模塊

a = "1"
b = "2"
@contextlib.contextmanager #定義上下文管理裝飾器
def f(a,b): #定義上下文管理裝飾器函數,設置形式參數來接收實際參數
    print("執行代碼塊以前,操做",a) #執行代碼塊以前打印
    try:
        yield   #遇到yield,跳出裝飾器函數,執行代碼塊後,在回到yield這裏向下執行
    finally:
        print("執行代碼塊以後,操做",b) ##執行代碼塊以後打印

with f(a, b): #執行下文管理裝飾器函數,傳入實際參數
    print("執行代碼塊")

# 輸出
# 執行代碼塊以前,操做 1
# 執行代碼塊
# 執行代碼塊以後,操做 2

上下文管理原理圖import

相關文章
相關標籤/搜索