看例
"""
需求:不用数据库连接池,实现数据库链接操作
"""
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__方法