Python_33装饰器
装饰器
开放封闭原则
装饰器是方法、类等
def outer(f):
print ('hello')
print ('hello')
print ('hello')
print ('hello')
print ('hello')
return f
@outer
def f1():
print ('F1')
f1()
______________________________
hello
hello
hello
hello
hello
F1
装饰器的使用
1.@函数名(f)
执行函数名(f),并将接下来的函数名(f1)不加括号当做参数
2、将函数名(f(f1))的返回值重新赋值给函数名(f1)
函数没有返回值时默认返回NULL
def outer(f):
def innner():
print ('hello')
print ('hello')
print ('hello')
print ('hello')
print ('hello')
r=f()
return r
return innner
@outer
def f1():
print ('FFFF')
f1()
—————————————————————————————————————————————运行结果如下
hello
hello
hello
hello
hello
FFFF
只要函数应用了装饰器,就会被重新定义为装饰器的内层函数
函数可以有参数
参数就对应写