有些概念常学常忘,闭包算是一个,先记录一下备忘。
先上概念,闭包指得是:嵌套的函数,内部(内层)函数调用外部函数的变量或参数,这个内部函数就是闭包函数。
def outer(arg):
a='我是外层函数的变量'
def inner():
print(a)
print(arg)
return inner
inner()函数就是闭包函数。
常用调用方式如下:
inn=outer(‘我是外层函数的参数’)
inn()
闭包主要借用了面向对象的编程理念,要实现开放封闭原则,即类或函数内部要封闭,内部功能不要随意改动,外部是开放的,修改类或函数的功数的功能在外部实现,切忌在内部修改。比如底层架构已经打好。就不要动底层架构,如非要改必然上层成千上万的基于底层的功能都要变。
根据上层谁变就更改谁的原则,就要用的闭包方式,比较常见的就是装饰器。
网友评论