Python筆記 上下文管理器

2021-10-18 01:25:24 字數 1402 閱讀 8652

# with 語句後面的結果物件,需要重寫 __enter__ 和 __exit__方法

# 當進入到 with **塊時,會自動呼叫 __enter__ 方法裡的**

# 當 with **塊執行完成以後,會自動呼叫 __exit__ 方法

class

demo

(object):

def__enter__

(self)

:print

('__enter__方法被執行了'

)return self

def__exit__

(self, exc_type, exc_val, exc_tb)

:print

('__exit__方法被呼叫了'

)def

creat_obj()

: x = demo(

)return x

# y = creat_obj() y = demo()

# d = y.__enter__() d = y.__enter__()

# print(y is d)

with creat_obj(

)as d:

# as 變數名

# 變數 d 不是 creat_obj() 的返回結果

# 它是建立的物件 y 呼叫 __enter__ 之後的返回結果

print

(d)

結果

__enter__方法被執行了

<__main__.demo object at 0x018ddcf0

>

__exit__方法被呼叫了

process finished with exit code 0

try

:file

=open

('***.txt'

,'r'

)except filenotfounderror:

print

('檔案不存在'

)else

:try

:file

.read(

)finally

:file

.close(

)try

:with

open

('***.txt'

,'r')as

file

:file

.read(

)# 不需要手動的關閉檔案

# file.close() # with關鍵字會幫我們關閉檔案

except filenotfounderror:

print

('檔案未找到'

)# with我們稱之為上下文管理器

python學習筆記 上下文管理器

上下文管理器可以在不需要檔案的時候,自動關閉檔案。下面我們看一下兩段程式 如下 without context manager f open new.txt w print f.closed whether the file is open f.write hello world f.close p...

26 python筆記 上下文管理器

個人部落格 注 enter方法可以寫連線資料庫的操作,exit方法寫斷開連線的操作,用with去管理 注 with開啟的檔案物件,就是1個上下文管理器 注 with語句可以去管理 上下文管理器物件 注 使用with管理,上下文管理器 不需要自己呼叫 enter exit 方法 示例 上下文管理器 上...

python 上下文管理器

上下文管理器允許你在有需要的時候,精確地分配和釋放資源。使用上下文管理器最廣泛的案例就是with語句了。想象下你有兩個需要結對執行的相關操作,然後還要在它們中間放置一段 上下文管理器就是專門讓你做這種事情的。舉個例子 with open some file w as opened file open...