闭包 装饰器的演进由来

 

# 闭包
def outer():
    a = 1
    def inner():
        print(a)
    return inner


inn = outer()
inn()

 

import time
def func():
    time.sleep(0.1)
    print("FFFF")


def timmer(f):
    def inner():
        start = time.time()
        f()
        end = time.time()
        print(end-start)
    return inner


func = timmer(func)
func()

 

mport time


def timer(f):
    def inner():
        start = time.time()
        f()
        end = time.time()
        print(end - start)
    return inner


def func():
    time.sleep(0.2)
    print("你好")


func = timer(func)
func()

 

import time


def timer(f):
    def inner(*args, **kwargs):
        start = time.time()
        ret = f(*args, **kwargs)
        end = time.time()
        print(end - start)
        return ret
    return inner


def func(*args, **kwargs):
    time.sleep(0.2)
    print("你好")
    return "再见"


func = timer(func)
r = func()
print(r)

 

def wrapper(f):
    def inner(*args, **kwargs):
        print("被装饰函数执行前")
        ret = f(*args, **kwargs)
        print("被装饰函数执行后")
        return ret
    return inner


@wrapper  # func = wrapper(func)
def func():
    print("SSSS")


func()

 

posted @ 2020-05-04 23:58  CherryYang  阅读(91)  评论(0)    收藏  举报