您的位置:首页 > 编程语言 > Python开发

python--闭包,装饰器

2017-06-15 19:11 295 查看
闭包函数:函数内部定义函数,称为内部函数。该内部函数包含对外部作用域,而不是对全局作用域名字的引用,那么该内部函数称为闭包函数。闭包函数的特点:    自带作用域    延迟计算函数的作用域关系在函数定义阶段就已经固定,与调用位置无关。无论函数在何处调用,都需要回到定义阶段去找对应的作用域关系。
定义闭包函数的基本形式
def 外部函数名():
内部函数需要的变量
def 内部函数():
引用外部变量
return 内部函数
f=外部函数(func)print(f.__closure__)    返回一个元组print(f.__closure__[0].cell_contents)   看元组包含的对象
====================================================================================================================
一:开放封闭原则,对扩展是开放的,对修改是封闭的

二:装饰器,装饰器本质可以任意可调用对象,被装饰的对象也可以是任意
    可调用对象,
    装饰器的功能是:
        在不修改被装饰对象源代码以及调用方式的前提下为期添加新功能

        原则:
            1.不修改源代码
            2.不修改调用方法
        目标:添加新功能
定义装饰器def 外部函数(func):def 内部函数(*args,**kwargs):passreturn  内部函数		
装饰器语法 @
1 写在被装饰对象的正上方单独一行2 可以叠加多个。 定义阶段外部函数的执行顺序是自下而上 调用阶段内部函数的执行顺序是自上而下
定义装饰器 def 外部函数(func): def 内部函数(*args,**kwargs): pass return 内部函数
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: