1. 程式人生 > >python中的with

python中的with

open() 數據 數據庫連接池 不用 需求 自動 enter per python

看例

"""
需求:不用數據庫連接池,實現數據庫鏈接操作
"""


class SQLHelper(object):
    def open(self):
        pass

    def fetch(self):
        pass

    def close(self):
        pass

    def __enter__(self):
        self.open()
        return self

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


# 方式一
# obj = SQLHelper()
# obj.open()
# obj.fetch()
# obj.close()


# 方式二
with SQLHelper() as obj:  # 自動調用類中的__enter__方法,obj就是__enter__方法的返回值。
    obj.fetch()
    # 執行完畢後會自動調用類的__exit__方法

  

  

python中的with