闭包

<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")  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容