閉包基本等于函數(shù)嵌套卧晓,? ?閉包區(qū)別與 普通函數(shù) , 擁有自己的變量指向的內(nèi)存(數(shù)據(jù)空間)和邏輯代碼塊(內(nèi)部函數(shù)函數(shù))逼裆;
閉包是 裝飾器的基礎(chǔ)赦政。裝飾器的功能需要閉包配合完成。
? ? ? ? 裝飾器能達到的功能昼钻,也可以通過改變函數(shù)代碼塊完成。在小的項目中這么做沒有什么問題仅财,但是大項目中接口函數(shù)太多碗淌。這樣做盏求,不僅工作量過大亿眠,也會造成冗余代碼過多。所以就有了裝飾器的使用余地荆烈,
? ? ? ? 裝飾器的基本使用格式 是? 在 需要更改的函數(shù) 前面 添加 @xxxx? ?xxxx 是閉包函數(shù)名竟趾。 底層實現(xiàn)方式是? 需要更改的函數(shù)名 引用? 。岔帽。。以下用代碼說明犀勒。
需要修改的函數(shù)名:delt? ?閉包名: fuk
def fuk(func)
? ? print("裝飾中 doading”)
? ? def ppop(*args, **kwargs)
? ? ? ? ? ?hdsc =?args[0]? *?args[1]
? ? ? ? ? ?return? ?func()
? ? ?return? ppop
@fuk? ?# @fuk 等于? delt =? fuk(delt)
def? delt():
? ? print("此函數(shù)需要添加功能")
閉包引起的裝飾器大劫案全部內(nèi)容。入門菜鳥隨便寫的钦购,不喜勿噴