Python上下文管理器的使用

2021-09-25 01:55:57 字數 1176 閱讀 3525

上下文管理器可以控制**塊執行前的準備動作,以及執行後的清理動作。

建立乙個上下文管理器類的步驟:

(1)乙個__init__方法,來完成初始化(可選)

(2)乙個__enter__方法,來完成所有建立工作

(3)乙個__exit__方法,來完成所有清理工作

例子1:

class user():

def __init__(self):

print('例項化')

def __enter__(self):

print('進入')

def __exit__(self, exc_type, exc_val, exc_trace):

print('退出')

obj = user()

with obj:

print('主要內容')

執行結果:

例項化

進入主要內容

退出

例子2:操作mysql資料庫

import mysql.connector

class usedatabase:

def __init__(self, config:dict) -> none:

self.configuration = config

def __enter__(self) -> 'cursor':

self.conn = mysql.connector.connect(**self.configuration)

self.cursor = self.conn.cursor()

return self.cursor

def __exit__(self, exc_ype, exc_value, exc_trace) -> none:

self.conn.commit()

self.cursor.close()

self.conn.close()

dbconfig =

with usedatabase(dbconfig) as cursor:

_sql = """insert into user(name,age)

values(%s,%s)"""

cursor.execute(_sql, ('張三',22))

python 上下文管理器

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

python上下文管理器

上下文管理器是乙個包裝任意 塊的物件。上下文管理器保證進入上下文管理器時,每次 執行的一致性 當退出上下文管理器時,相關資源會被正確 這裡被正確 指的是在 exit 方法自定義 比如關閉資料庫游標 值得注意的是,上下文管理器一定能夠保證退出步驟的執行。如果進入上下文管理器,根據定義,一定會有退出步驟...

Python 上下文管理器

python中的上下文管理器是乙個包裝任意 塊的物件。它在處理資源的開啟關閉 異常的處理等方面有很好的實現方法。1.上下文管理器的語法 假設我們需要讀取乙個檔案中的資料,如下 try test file open test.txt r contents test file.read finally ...