# 装饰器本质是函数
# 装饰器功能:装饰其他函数的,为其他函数添加附加功能 (个人理解 :函数扩展)
# 原则:1,不能修改被装饰的函数的源代码
# 2,不能修改被装饰的函数调用方式
# 实现装饰器的知识储备
# 1.函数即变量(意思就是函数就是变量!)
# 2.高阶函数
# 条件:
# a:吧一个函数名当做实参传给 另外一个函数!
# b:返回值中包含函数名 (不修改函数的调用方式)
# 3.嵌套函数
# 高阶函数+嵌套函数=装饰器

# 匿名函数
prin=lambda x:x*3

# 高阶函数
# def xx():
# print("-*-------------")
#
#
# def dd(function):
# function()
# print("asdasdasdasdasd")
# return function
#
# xx=dd(xx)
# xx()
# 高阶函数

def pp(func): #这是个高阶函数的例子
func() #等同于被添加的函数
# def xx(*args,**kwargs): #*args 当参数不确定时表示可以容纳多个变量或者列表 #**kwargs 表示可以容纳多个键值对
def xx():
aa=input("输入一个值")
print(aa)
return xx

@pp #进行功能迭代的直接方法
def cc():
print("------------------------")
return "AAA"

dd = cc()
print(dd)