1. 程式人生 > 其它 >Python基礎篇---閉包函式和裝飾器

Python基礎篇---閉包函式和裝飾器

本章內容

       • 閉包函式

       • 裝飾器簡介

       • 裝飾器版本

       • 裝飾器模板

       • 裝飾器語法糖

       • 裝飾器修復技術

閉包函式


閉包函式的概念

閉:定義在函式內部的函式

包:內部函式使用了外層函式名稱空間中的名字

def outer():
    x = 999
    def inner():   # inner函式在outer裡面,符合閉的特徵
        print('from outer>>>inner',x)  # 變數名x 是從外層函式outer獲取值
    return inner
x 
= 666 res = outer() res()

閉包函式實際應用

閉包函式是給函式體傳參的另外一種方式。

def outer(username):
    # username = 'jason'
    def index():
        print(username)  # 永遠使用的都是jason
    return index
res = outer('kevin')  # 形參username與值kevin臨時繫結 >>>:outer區域性名稱空間中
res()  # 輸出 kevin
res1 = outer('jason')  # 形參username與值kevin臨時繫結 >>>:outer區域性名稱空間中
res1() # 輸出 jason

裝飾器簡介


 

裝飾器並不是一個新的知識點 而是名稱空間,函式名和閉包函式的知識點整合起來的產物。

裝飾器的本質是在不改變裝飾物件原有的'呼叫方式'和'內部程式碼'的情況下給被裝飾物件新增新的功能。

裝飾器的原則是對擴充套件開放,對修改封閉。

 

 

 

裝飾器版本