python3環境管理器

1. 類內有 __enter__ 和 __exit__ 方法的類被稱爲環境管理器

2. 能夠用with語句進行管理的對象必須是環境管理器

3. __enter__ 將在進入with語句時調用並返回由 as 變量管理的對象

4. __exit__  將在離開with時被調用,且可以用參數判斷離開with語句時是否有異常發生,並做出相應的處理



class Door:

    def open_door(self):

        print("正在開門")

    def close_door(self):

        print("正在關門")

    def come_in(self):

        print("正在進人")

    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()


20180702162711.png


__enter__語句在with執行時調用 open_door 動作,在with執行完畢調用__exit__語句裏面的 close_door操作。判斷語句檢查類型並拋出狀態


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章