码迷,mamicode.com
首页 > 编程语言 > 详细

python3 闭包函数,装饰器

时间:2017-06-19 20:52:44      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:turn   **kwargs   content   int   展开   方式   开放封闭原则   作用   soft   

闭包函数:
1、定义在函数内部的函数
2、包含对外部作用域而非全局作用域的引用
特点:
1、自带作用域
2、延迟计算(取到内存地址,加括号执行)

def 外部函数(func):
def 内部函数(*args,**kwargs):
pass
return 内部函数

f=外部函数(func)


print(f.__closure__)
print(f.__closure__[0].cell_contents)


优点:
1 自带作用域
2 惰性延迟

1、开放封闭原则,对扩展是开房的,对修改是封闭的
2、装饰器:装饰器本质是可以任意调用对象,被装饰的对象也可以是任意可调用对象
功能:在不修改被装饰对象源代码以及调用方式的前提下,对其添加新功能
原则:
1、不修改源代码
2、不修改调用方式
目标:添加新功能


装饰器
1 开放封闭原则:对扩展开放,对修改(修改源代码和调用方式)是封闭的

2 什么是装饰器:装饰器本质是任意可调用对象,被装饰器对象也可以是任意可调用对象
装饰器遵循的原则:不修改被装饰对象的源代码和调用方式

3 定义装饰器

def 外部函数(func):
def 内部函数(*args,**kwargs):
pass
return 内部函数

4 装饰器的语法:@
1.卸载被装饰对象的正上方单独一行
2.可叠加多个,执行顺序是自下而上
定义阶段外部函数的执行顺序是自下而上
调用阶段内部函数的执行顺序是自上而下
@timmer #index=timmer(index)
def index():
pass

python3 闭包函数,装饰器

标签:turn   **kwargs   content   int   展开   方式   开放封闭原则   作用   soft   

原文地址:http://www.cnblogs.com/lucaq/p/7050362.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!