zoukankan      html  css  js  c++  java
  • python入门之装饰器

    入门原理:

      一系列函数要做相同的修改,在这些函数执行之前做的操作,或者在执行之后做的操作都可以在一个装饰器(函数)里修改

    作用:

      在不改变原函数的情况下,对原函数的操作前或者操作后做些改变,这就是装饰器的作用

    def outer(func):
        #装饰器
        def inner(*arg,**kwargs):
            print("start")
            r = func(*arg,**kwargs)
            print("end")
            return r
        return inner
    
    @outer
    
    def f1(a1,a2):
        #对此函数做修改
        print("f1")
    
    f1(1,2)

      1.@outer 是执行outer装饰器,这条语句下面的所有函数f1,会当作参数通过outer的形参func传入到outer里面,那么outer的函数体里 func = 原来的f1函数

      2.将outer的返回值重新赋值给f1(f1=outer的返回值),那么后面执行f1的时候就执行现在这个f1函数(f1=outer的返回值),并非原来的f1函数

      3.outer的返回值是inner函数,所以新的f1函数=inner,所以要执行f1(1,2)其实就是执行的是inner(1,2),而r = func(*arg,**kwargs)这句是执行原来的f1函数

  • 相关阅读:
    Codeforces Round #609 (Div. 2)
    Educational Codeforces Round 78 (Rated for Div. 2)
    Codeforces
    crontab
    C6 C7的开机启动流程
    平均负载压力测试
    ps 和 top
    if判断
    使用3种协议搭建本地yum仓库
    linux rpm包
  • 原文地址:https://www.cnblogs.com/chy-op/p/9886485.html
Copyright © 2011-2022 走看看