中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

@contextmanage怎么在python中使用

發布時間:2021-04-23 17:42:40 來源:億速云 閱讀:205 作者:Leah 欄目:編程語言

@contextmanage怎么在python中使用?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

python的數據類型有哪些?

python的數據類型:1. 數字類型,包括int(整型)、long(長整型)和float(浮點型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運算,有兩個值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數據類型,集合中可以放任何數據類型。5. 元組,元組用”()”標識,內部元素用逗號隔開。6. 字典,字典是一種鍵值對的集合。7. 集合,集合是一個無序的、不重復的數據組合。

1、實現邏輯

(1)初始化一個 _GeneratorContextManager 類,構造方法接受了一個生成器 gen

(2)這個類實現了上下文管理器協議 __enter__ 和 __exit__

(3)執行 with 時會進入到 __enter__ 方法,然后執行這個生成器,執行時會運行到 with 語法塊內的 yield 處

(4)__enter__ 返回 yield 的結果

(5)如果 with 語法塊沒有發生異常,with 執行結束后,會進入到 __exit__ 方法,再次執行生成器,這時會運行 yield 之后的代碼邏輯

(6)如果 with 語法塊發生了異常,__exit__ 會把這個異常通過生成器,傳入到 with 語法塊內,也就是把異常拋給調用者

2、使用實例

在Python中,可以使用裝飾器 @contextmanager來簡化上下文管理器,也就是不需要定義__enter__和__exit__方法。

class MyContent:
    def query(self):
        print('query data')
# 需要引入contextmanager
from contextlib import contextmanager
 
@contextmanager
def make_resource():
    print('first connect to resource')
    yield MyContent()
    print('close resource connection')
 
#應用上下文管理器
with make_resource() as r:
r.query()

看完上述內容,你們掌握@contextmanage怎么在python中使用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海阳市| 肃北| 阿拉善右旗| 河源市| 福贡县| 兴义市| 遵义市| 山东省| 安塞县| 连江县| 石泉县| 诸暨市| 黄石市| 思茅市| 台湾省| 盘锦市| 肇庆市| 宜君县| 清原| 锡林浩特市| 苍梧县| 谢通门县| 津南区| 新和县| 宜兰市| 渝中区| 通渭县| 阳春市| 宁安市| 清涧县| 竹溪县| 宜兰县| 罗田县| 客服| 仙桃市| 阿尔山市| 蓬溪县| 阜新市| 浦北县| 吴忠市| 承德市|