真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python中上下文管理器的原理是什么

今天就跟大家聊聊有關(guān)python中上下文管理器的原理是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)南昌縣免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

python主要應(yīng)用領(lǐng)域有哪些

1、云計算,典型應(yīng)用OpenStack。2、WEB前端開發(fā),眾多大型網(wǎng)站均為Python開發(fā)。3.人工智能應(yīng)用,基于大數(shù)據(jù)分析和深度學(xué)習(xí)而發(fā)展出來的人工智能本質(zhì)上已經(jīng)無法離開python。4、系統(tǒng)運維工程項目,自動化運維的標(biāo)配就是python+Django/flask。5、金融理財分析,量化交易,金融分析。6、大數(shù)據(jù)分析。

1、原理

with實際上是python中的關(guān)鍵字,它可以開啟一個對象的上下文管理器協(xié)議,實際上,在文件操作時,并不是不需要寫文件的關(guān)閉,而是文件的關(guān)閉操作在 with 的上下文管理器中的協(xié)議方法里已經(jīng)寫好了。當(dāng)文件操作執(zhí)行完成后, with語句會自動調(diào)用上下文管理器里的關(guān)閉語句來關(guān)閉文件資源。

2、注意

上下文管理器一定能夠保證退出步驟的執(zhí)行。如果進(jìn)入上下文管理器,根據(jù)定義,一定會有退出步驟。即使內(nèi)部的代碼拋出異常,這點也成立。事實上,如果退出步驟處理合適,那么上下文管理器的退出代碼為處理這類異常提供一個機會(雖然不強制要求一定要處理異常)。

3、實例

class TestContext:
 
    def __enter__(self):
        print('__enter__')
        return 1
 
    def __exit__(self, exc_type, exc_value, exc_tb):
        print('exc_type: %s' % exc_type)
        print('exc_value: %s' % exc_value)
        print('exc_tb: %s' % exc_tb)
 
with TestContext() as t:
    print('t: %s' % t)
    
# Output:
# __enter__
# t: 1
# exc_type: None
# exc_value: None
# exc_tb: None

在這個例子中,我們定義了 TestContext 類,它分別實現(xiàn)了 __enter__ 和 __exit__ 方法。

這樣一來,我們就可以把 TestContext 當(dāng)做一個「上下文管理器」來使用,也就是通過 with TestContext() as t 方式來執(zhí)行。

從輸出結(jié)果我們可以看到,具體的執(zhí)行流程如下:

__enter__ 在進(jìn)入 with 語句塊之前被調(diào)用,這個方法的返回值賦給了 with 后的 t 變量;

__exit__ 在執(zhí)行完 with 語句塊之后被調(diào)用。

看完上述內(nèi)容,你們對python中上下文管理器的原理是什么有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


新聞名稱:python中上下文管理器的原理是什么
文章地址:http://weahome.cn/article/ijiieh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部