zoukankan      html  css  js  c++  java
  • 装饰器

    装饰器

      原则:开放封闭

      作用:在不改变原函数的调用方式情况下,在函数的前后添加功能

      本质:闭包函数

    import time
    def func():
        time.sleep(1)
        print('Hello World')
    
    def timmer(f):
        def inner():
            f()
            print(time.strftime("%Y-%m-%d"))
        return inner
    func = timmer(func)
    func()

    timmer 为装饰器

    闭包函数 - 在内部函数引用外部函数的变量

    装饰器函数 - 一定是闭包函数

    
    
    
    def wrapper(func):      #此时func 为qqxing
        def inner(*args,**kwargs):
            ret = func(*args,**kwargs)
            return ret
        return inner
    
    @wrapper   #此时qqxing 为 inner #qqxing = wrapper(qqxing)
    def qqxing(a,b):
        print(123,a,b)
        return '新年好'
    
    @wrapper
    def qqxing2(*args):
        print(*args)
        return '新年快乐'
    
    ret = qqxing(1,b=3)     #inner()
    print(ret)
    ret = qqxing2(1,2,3,4,5)
    print(ret)
    View Code
  • 相关阅读:
    hdu 4370
    lightoj 1074
    poj 1026
    poj 3159
    poj3660 cow contest
    hdu 4069 垃圾数独
    操作系统概念题复习
    ARM指令
    C++ 抢占时优先级进程调度
    Docker 入门
  • 原文地址:https://www.cnblogs.com/Hxx0916/p/9541984.html
Copyright © 2011-2022 走看看