日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 作用with_即使__init__方法有效,Python中的With语句仍返...

發布時間:2025/3/21 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 作用with_即使__init__方法有效,Python中的With语句仍返... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于具有以下init方法的數據庫類:

class DB:

def __init__(self, dbprops):

self.dbprops = dbprops

self.conn = self.get_connection(self.dbprops)

debug("self.conn is %s" %self.conn)

def __enter__(self):

pass

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

if not self.conn is None:

self.close()

對于調用它的客戶端方法,如下所示:

with DB(self.dbprops) as db:

if not db:

raise Exception("Db is None inside with")

return db.get_cmdline_sql()

輸出顯示調試消息-因此成功調用了init方法:

File "./classifier_wf.py", line 28, in get_cmdline_mysql

raise Exception("Db is None inside with")

例外:Db在里面是None

更新:修復了enter方法以返回數據庫對象的問題.但是需要有關如何調用它的幫助:

def __enter__(self, dbprops):

return DB(dbprops)

用單個參數調用它顯然不起作用:

with DB(dbprops) as db:

TypeError: __enter__() takes exactly 2 arguments (1 given)

現在,我不再關注,因為應該自動填寫“自我”.

總結

以上是生活随笔為你收集整理的python 作用with_即使__init__方法有效,Python中的With语句仍返...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。