装饰器
*表面意思是装饰对象的器件
*在不修改原有代码的情况下,为被修饰的对象增加新的功能或者限制条件
*有函数的装饰器,也有类的装饰器
*如果想装饰类或者函数用法:@装饰对象名,放在装饰对象上下如:
# 定义一个装饰器(函数)
# 装饰器函数必须有且只有一个参数,该参数表示被修饰函数的名字
# @outer表示在调用装饰器函数
def outer(func):# 2.func = fun1
print("我是装饰器")
def inner():
print("安全认证功能")
func() # 3、func() ==> fun1()
return inner() # 4、将结果返回给被装饰的函数名
# @outer # 1、装饰器函数会被调用
# def fun1(): # 5、f1 = inner
# print('业务部门1的数据接口')
@outer
def fun2():
print("业务部门2的数据接口")
#6、实际调用的是inner函数
fun2
# 装饰器第二个例子
def o2(f2):
def inner(n):
print("安全认证功能")
f2(n)
return inner
@o2
def f2_1(dun):
print(dun)
f2_1(2)
输出结果:
我是装饰器
安全认证功能
业务部门2的数据接口
安全认证功能
2