python之魔法—装饰器函数
闭包函数
闭包
闭包是指引用了外部包裹此函数的变量的函数
三个条件:
1. 要有内嵌函数
2. 引用外部嵌套函数的变量
3. 返回内嵌函数
闭包函数示例
def my_fun(y):
def fn(x):
print("******")
print(x * y)
return fn
fn = my_fun(10)
fn(20)
******
200
装饰器函数
什么是装饰器
装饰器是一个函数,主要作用是用来包装另一个函数或类
包装的目的是在不改变原函数名(或类名) 的情况下改变或添加被包装对象的行为
函数装饰器
是指装饰器是一个函数,传入的是一个函数,返回的也是一个函数
语法:
def 装饰器函数名(参数):
语句块
return 函数对象
@装饰器函数名<换行>
def 函数名(形参列表):
语句块
装饰器函数示例
def first_fun(fx):
def fn():
doc = '''这个是函数的说明'''
print(doc)
fx()
return fn
def sencond_fun(fx):
def fn():
print("这个是装饰器函数的内容")
print("****************")
fx()
return fn
@first_fun
@sencond_fun
def work():
print("这个是原来函数的内容")
work()