zoukankan      html  css  js  c++  java
  • 第五十八节,上下文管理

    上下文管理

    上下文管理就是在执行一段代码块的时候,通过一个装饰器函数,在执行代码块之前到装饰器函数里做一个操作,然后执行代码块,执行代码块之后再到装饰器函数里做另外一个操作

    要使用上下文管理首先要 import contextlib   导入上下文管理模块

    @contextlib.contextmanager 定义上下文管理装饰器,写在下文管理装饰器函数上面

    yield 遇到yield,跳出装饰器函数,执行代码块后,在回到yield这里向下执行

    with 执行上下文管理装饰器,后面写要执行的下文管理装饰器名称,里面写代码块

    上下文管理使用代码

    #!/usr/bin/env python
    # -*- coding:utf8 -*-
    import contextlib   #导入上下文管理模块
    
    a = "1"
    b = "2"
    @contextlib.contextmanager #定义上下文管理装饰器
    def f(a,b): #定义上下文管理装饰器函数,设置形式参数来接收实际参数
        print("执行代码块之前,操作",a) #执行代码块之前打印
        try:
            yield   #遇到yield,跳出装饰器函数,执行代码块后,在回到yield这里向下执行
        finally:
            print("执行代码块之后,操作",b) ##执行代码块之后打印
    
    with f(a, b): #执行下文管理装饰器函数,传入实际参数
        print("执行代码块")
    
    # 输出
    # 执行代码块之前,操作 1
    # 执行代码块
    # 执行代码块之后,操作 2

    上下文管理原理图

  • 相关阅读:
    linux中apt-get使用
    部署ceph
    cinder存储服务
    ceph简介
    Horizon Web管理界面
    neutron网络服务2
    neutron网络服务
    nova计算服务
    cinder存储服务
    keystone身份认证服务
  • 原文地址:https://www.cnblogs.com/adc8868/p/5948113.html
Copyright © 2011-2022 走看看