Python中有类似jdk7中的资源释放语法糖,可以优美的释放资源流程
import mysql.connector as conn
class DBUtil:
def __init__(self, host, user, passwd, database):
self.db = conn.connect(host=host, user=user, passwd=passwd, database=database)
# with定义完成
def __enter__(self):
return self.db.cursor()
# with内代码执行完成后执行
def __exit__(self, exc_type, exc_val, exc_tb):
self.db.commit()
self.db.disconnect()
if __name__ == "__main__":
with DBUtil("localhost", "root", "root", "test") as cur:
sql = "select * from user_name"
cur.execute(sql)
for item in cur.fetchall():
print(item)