017-闭包-装饰器
Posted hhj-study-10years
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了017-闭包-装饰器相关的知识,希望对你有一定的参考价值。
闭包 :
闭包和函数的区别 : 闭包可以保存外层函数的参数(原理 : 外层函数返回了内层函数的引用,引用一直指向内层函数。内层函数又需要用到外层的参数,所以外层参数不会被销毁)
格式 :
# 注意外层函数一定要有参数或者变量等等,这样内层函数才可以使用外层的内容,如果没有的话
# 那么内外层函数就没有任何联系,何必使用闭包呢。
def 外层函数(参数):
def 内层函数():
print(参数)
# 注意返回的是内层函数引用
return 内层函数
装饰器 :
作用 : 为被装饰的函数添加额外功能
特点 : 装饰器函数只执行一次,@的时候执行(语法糖,先跳过@这一行,再回来执行)
格式 :
def 外层函数(参数):
def 内层函数():
print(参数)
return 内层函数
@外层函数引用
def 被修饰的函数():
代码块
执行过程 :
装饰器传参 :
格式 :
def 传参函数(参数A):
def 外层(参数B):
def 内层():
print(xxx)
return 内层引用
return 外层引用
@ 传参函数(参数)
def 被修饰的函数():
代码块
先执行 @ 右边的函数,把参数传进去后,右边函数返回外层引用,此时等于 @外层引用,到这开
始就是装饰器了
以上是关于017-闭包-装饰器的主要内容,如果未能解决你的问题,请参考以下文章