码迷,mamicode.com
首页 > 编程语言 > 详细

Python源码之with原理

时间:2018-09-12 22:57:48      阅读:372      评论:0      收藏:0      [点我收藏+]

标签:调用   mysq   etc   使用   数据库   解决   font   type   打开   

需求

  我们平时对文件和数据库操作的时候,执行的步骤都是打开---操作数据---关闭,这是正常的操作顺序,但有时候难免会在操作完数据之后忘记关闭文件对象或数据库,而使用with正是可以解决这个问题。

原理

class MysqlHelper(object):
    def open(self):
        print(open)
        pass

    def close(self):
        print(close)
        pass

    def fetch_all(self):
        pass

    def __enter__(self):
        """
        在执行with语句中代码之前该函数首先被调用
        :return:
        """
        self.open()

    def __exit__(self, exc_type, exc_val, exc_tb):
        """
        当with语句中最后一行代码执行完毕之后,自动调用该方法
        :param exc_type:
        :param exc_val:
        :param exc_tb:
        :return:
        """
        self.close()


with MysqlHelper() as f:
    pass

对于要使用with语句的对象,在执行with代码体之前会首先执行该对象的__enter__方法,然后再执行代码体,最后自动执行__exit__方法。

Python源码之with原理

标签:调用   mysq   etc   使用   数据库   解决   font   type   打开   

原文地址:https://www.cnblogs.com/liuyinzhou/p/9637669.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!