摘要:
问题引出 一般情况下类方法的调用是通过先创建类对象再通过a.b()的方式来调用,但是如果类中只有一个方法或者一个方法的使用频率非常高,那么就可以为这个方法命名为__call__来简化调用。 __call__ 存在__call__方法的类对象被称为可调用对象,它的作用可以总结为以下两点: 简化了对象下 阅读全文
摘要:
问题引出 通过SQLAlchemy来修改数据库时,经常需要使用db.session.commit()和db.session.rollback()结合异常处理语句来实现事务回滚。如果在所有需要修改数据库的地方都加上异常处理和回滚语句就过于麻烦了,而通过with语句结合@contextmanager我们 阅读全文
摘要:
问题引出 在Python中with的用法一文中已经写到了什么是上下文管理器,以及如何创建一个符合上下文协议的自定义类。那么如果我们需要将一个非自定义的类改成一个上下文管理器又该怎样实现? 我们可以为需要改写的普通类创建一个子类,在其中添加上__enter__和__exit__方法通过继承父类的方式实 阅读全文