#装饰器
#普通装饰器
def func1(func):
def add_func():
print('添加功能')
return func() #注释这一句就是一个最简单的闭包函数
#func 函数
#func() 函数调用
print('1')
return add_func
@func1 #装饰器函数
def func2():#被装饰的函数
print('hello world')
func2()
被装饰的函数带参数
def func1(func):
def func2(a,b):
a=1
b=2
return func(a,b)
print('1')
return func2
@func1
def func(x,y):
print('add function')
print(x+y)
func(10,20)
装饰器函数带参数
def a__func(arg):
def _func(func):
def _func1():
if arg=='good':
print('出去玩')
if arg=='bad':
print('不出去')
return func()
return _func1
return _func
@a__func('bad')
def func():
print('bad day')
@a__func('good')
def func1():
print('good day')
func()
func1()