• <strike id="6sogq"><s id="6sogq"></s></strike>
  • <strike id="6sogq"></strike>

    千鋒教育-做有情懷、有良心、有品質的職業教育機構

    400-811-9990
    手機站
    千鋒教育

    千鋒學習站 | 隨時隨地免費學

    千鋒教育

    掃一掃進入千鋒手機站

    領取全套視頻
    千鋒教育

    關注千鋒學習站小程序
    隨時隨地免費學習課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當前位置:成都千鋒IT培訓  >  技術干貨  >  python中@contextmanager是什么?

    python中@contextmanager是什么?

    來源:千鋒教育
    發布人:xqq
    時間: 2023-11-10 18:45:28

    python中@contextmanager是什么?

    本文教程操作環境:windows7系統、Python3.9.1,DELLG3電腦。

    1、概念

    是contextlib模塊提供的一個裝飾器,用于將一個函數聲明上下文管理,無需創建一個類或者單獨的__enter__()方法和__exit__()方法,就可以實現上下文管理。

    2、注意

    裝飾器@contextmanager真正的用法并不是簡化上下文管理器,而是去定義上下文管理器的方法,是對原來不是上下文管理器的類變成了一個上下文管理器。

    3、實例

    fromcontextlibimportcontextmanager

    importtime

    @contextmanager

    defdemo(label):

    start=time.time()

    try:

    yield

    finally:

    end=time.time()

    print('{}:{}'.format(label,end-start))

    withdemo('counting'):

    n=10000000

    whilen>0:

    n-=1

    #counting:1.32399988174

    看上面這個例子,函數中yield之前的所有代碼都類似于上下文管理器中__enter__方法的內容。而yield之后的所有代碼都如__exit__方法的內容。如果執行過程中發生了異常,則會在yield語句觸發。

    以上就是python中@contextmanager的基本介紹,相信大家對于這種直接實現上下文管理器的方法,還是非常感興趣的。看完文章后,可以運行上面的代碼進行體驗。更多Python學習教程請關注IT培訓機構:千鋒教育。

    聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。

    猜你喜歡LIKE

    python delattr函數如何使用?

    2023-11-10

    python time.strptime的格式化

    2023-11-10

    pythonGIL在Python多線程的應用

    2023-11-10

    最新文章NEW

    python中pdb模塊怎么用?

    2023-11-10

    Python如何截圖保存?

    2023-11-10

    python?中缺少module怎么辦?

    2023-11-10

    相關推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網友熱搜 更多>>