python上下文管理

2021-10-14 13:17:01 字數 545 閱讀 4696

重寫 __enter__方法,返回值會被 as 捕獲

重寫__exit__方法

demo

class

mycontextmanager

:def

__enter__

(self)

:print

("進入管理器範圍執行方法"

)# 此處的返回值會被 with xx as 捕獲

return

"***"

# 退出上下文管理範圍執行方法,即使中間報錯也會執行

def__exit__

(self, exc_type, exc_val, exc_tb)

:print

("退出管理器範圍執行方法"

)if __name__ ==

'__main__'

:with mycontextmanager(

)as ob:

print

("上下文內執行方法"

, ob)

print(1

/0)

python 高階 with 上下文管理

with 上下文管理器 語法糖 python 提供的一種簡化語法,在編寫 時更加簡潔 with 就是眾多語法糖中的一種 with 執行原理 能通過with進行執行的語句,都是實現了上下文管理器 上下文管理器中包含兩個魔法方法 enter 和 exit enter 方法提供環境的初始化操作 exit ...

python 上下文管理協議

class open def init self,name self.name name def enter self print 出現with語句,物件的 enter 被觸發,有返回值則賦值給as宣告的變數 return self def exit self,exc type,exc val,ex...

python之with上下文管理

finally塊由於是否發生異常都會執行,通常是釋放資源的 可以通過with上下文管理,更方便的實現釋放資源的操作。with上下文管理的語法結構 with context expr as var 語句塊with上下文管理可以自動管理資源,在with 塊執行完後自動還原進入 之前的現場或上下文。cod...