# 裝飾器本質是函數# 裝飾器功能:裝飾其餘函數的,爲其餘函數添加附加功能 (我的理解 :函數擴展)# 原則: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)