閉包

<a target="blank" href="http://zh.wikipedia.org/zh-cn/%E9%97%AD%E5%8C%85(%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6)">閉包在維基百科上的定義</a>如下: 在計算機科學中,閉包(Closure)是詞法閉包(Lexical Closure)的簡稱,是引用了自由變量的函數。這個被引用的自由變量將和這個函數一同存在,即使已經離開了創造它的環境也不例外。所以,有另一種說法認為閉包是由函數和與其相關的引用環境組合而成的實體。

def logger_facroty(prefix="", with_prefix=True):  
    if with_prefix:  
        def logger(msg):  
            print prefix + msg  
        return logger  
    else:  
        def logger(msg):  
            print msg  
        return logger  
  
logger_with_prefix = logger_facroty("Prefix: ")  
logger_without_prefix = logger_facroty(with_prefix=False)  
logger_with_prefix("msg")  
logger_without_prefix("msg")  
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容