#!/usr/bin/env python # -*- coding;utf-8 -*- """ 1、将outer函数放入内存 2、遇见@ + 函数名,则将该函数转换为装饰器,并将@ + 函数名之后的最近的函数作为被装饰的对象 3、将inner()放入内存,返回inner 4、被装饰的对象函数调用时f1(),执行inner函数内容,遇见调用被装饰的对象时,调用被装饰函数,继续执行函数体,返回r """ def outer(func): def inner(*args, **kwargs): print("前面") r = func(*args, **kwargs) print("后面") return r return inner @outer def f1(*args, **kwargs): print(*args, **kwargs) f1(11, 22) @outer def f2(a, b): print(a + b) def f3(*args, **kwargs): print(*args) print(**kwargs) li = {1: 1, 2: 2} f3(11, 22, {1: 2})