溫馨提示×

溫馨提示×

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

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

python3環(huán)境管理器

發(fā)布時間:2020-08-07 01:59:13 來源:網(wǎng)絡(luò) 閱讀:347 作者:calabash_LY 欄目:編程語言

1. 類內(nèi)有 __enter__ 和 __exit__ 方法的類被稱為環(huán)境管理器

2. 能夠用with語句進(jìn)行管理的對象必須是環(huán)境管理器

3. __enter__ 將在進(jìn)入with語句時調(diào)用并返回由 as 變量管理的對象

4. __exit__  將在離開with時被調(diào)用,且可以用參數(shù)判斷離開with語句時是否有異常發(fā)生,并做出相應(yīng)的處理



class Door:

    def open_door(self):

        print("正在開門")

    def close_door(self):

        print("正在關(guān)門")

    def come_in(self):

        print("正在進(jìn)人")

    def __enter__(self):

        self.open_door()

        return self   #對象被as綁定(開門的動作被c綁定)

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

        self.close_door()

        if exc_type is None:

            print("with語句正常退出")

        else:

            print("with語句異常退出",exc_value)



with Door() as c:

    c.come_in()

    3 / 0   #拋出一個異常

    c.come_in()


python3環(huán)境管理器


__enter__語句在with執(zhí)行時調(diào)用 open_door 動作,在with執(zhí)行完畢調(diào)用__exit__語句里面的 close_door操作。判斷語句檢查類型并拋出狀態(tài)


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI