上下文管理器 with用法

2022-09-22 06:48:10 字數 996 閱讀 6499

連線資料庫後,需要釋放鏈結,此時想到用上下文管理器來提高效率,具體**如下:

import

pymysql

class

cal:

def__enter__

(self):

#連線資料庫

print("

連線資料庫")

self.conn = pymysql.connect('

127.0.0.1

', port=3306, database='

aresresource

', user='

aresresource',

password='

aresresource123

', charset='

utf8')

self.cursor =self.conn.cursor()

return

self

deftest1(self):

selectsql = '

select * from tm_ed_time_task;

'self.cursor.execute(selectsql)

result =self.cursor.fetchall()

print

(result)

def__exit__

(self, type, value, traceback):

print("

關閉資料庫鏈結")

self.conn.close()

deftest1pro():

with cal() as cal:

cal.test1()

if__name__ == '

__main__':

test1pro()

實現過程遇到的問題:

1.__enter__函式:with 後會將__enter__函式返回給上下文管理器物件

相當於 cal = cal()

with上下文管理器

在執行 with 語句時,首先執行 with 後面的 open 執行完 後,會將 的結果通過 as 儲存到 f 中 然後在下面實現真正要執行的操作 在操作後面,並不需要寫檔案的關閉操作,檔案會在使用完後自動關閉 實際上,在檔案操作時,並不是不需要寫檔案的關閉,而是檔案的關閉操作在 with 的上下文...

with上下文管理器

上下文管理器 任何實現了enter 和exit 法的物件都可稱之為上下 管理 器,上下 管理器物件可以使 with 關鍵字。顯然,件 file 物件也實現 了上下 管理器 方法一class file def init self,filename,mode self.filename filename...

上下文管理器

今天我們聊聊上下文管理器,當然今天所談僅為個人觀點!今天如果不是學生面試回來跟我聊到了上下文管理器,我都忘了python中還有這麼個鬼了。特別寫一篇博文我們簡單聊聊。普通的檔案操作方式,例如 情況01 1 以寫的方式開啟檔案 f open 1.txt w 2 寫入檔案內容 f.write hello...