当前位置:   article > 正文

flask中的with语句_flask with

flask with
  1. 上下文协议:在python中,实现了__enter__和__exit__这两个方法的对象也就是实现了上下文协议(只有实现了上下文协议的对象才可以使用with语句)。
  2. 上下文管理器:实现了上下文协议的对象又称作上下文管理器。
  3. 用法:
    (1)举例:在操作数据库时,首先连接数据库,其次处理sql语句,最后释放资源。那么利用with语句可以将连接数据库放在__enter__方法中,操作sql放在with语句代码块中,释放资源放在__exit__方法中。
    (2)代码示例
class Test():
    def __enter__(self):
        print('进入enter方法')

    def __exit__(self, exc_type, exc_val, exc_tb):
        print('进入exit方法')

with Test() as obj:
    print('进入业务方法')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
进入enter方法
进入业务方法
进入exit方法
  • 1
  • 2
  • 3

在这里,可以简单理解with语句的基本用法;但是with语句中as后面的obj并不是上下文管理器,而是__enter__方法中所返回的对象,如下:

class Test():
    def __enter__(self):
        a = 1
        print('进入enter方法')
        return a

    def __exit__(self, exc_type, exc_val, exc_tb):
        print('进入exit方法')

with Test() as obj:
    print('进入业务方法')
    print(obj)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
进入enter方法
进入业务方法
1
进入exit方法

  • 1
  • 2
  • 3
  • 4
  • 5

由此可见 as后面的obj对象其实就是__enter__方法中所返回的对象。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/448808
推荐阅读
相关标签
  

闽ICP备14008679号