装饰器
闭包:内部函数使用外部函数中的变量,这种情况下就称这是一个闭包。
def f1(b):
def f2():
print(b)
f2()
return f2
ff=f1('bbb')
ff()
# bbb
# bbb
def f1():
b=10
def f2():
return b
return f2()
print(f1())
# 10
装饰器:在不改变函数的调用方式的情况下,给函数的前后添加新的功能。
装饰器的固定结构:
def wrapper(func):
def inner(*args,**kwargs):
"""被装饰器执行之前要添加的代码"""
ret=func(*args,**kwargs)
"""被装饰器执行之后要添加的代码"""
return ret
return inner
装饰器的例子:
def wrapper(func):
def inner(*args,**kwargs):
print('小峰') # 被装饰器函数执行之前要添加的代码
ret=func(*args,**kwargs)
print('小明') # 被装饰器函数执行之后要添加的代码
return ret
return inner
@wrapper
def func(name):
print('%s好,才是真的好'%(name))
@wrapper
def fun1():
print()
func('小峰')
print('=='*10)
print(func('小方'))
# 小峰
# 小峰好,才是真的好
# 小明
# ====================
# 小峰
# 小方好,才是真的好
# 小明
# None
概念:开放封闭原则
开放是指:对扩展是开放的
封闭是指:对修改是封闭的


浙公网安备 33010602011771号