闭包跟装饰器
闭包的概念:一个完整的闭包必须满足以下三个条件:
1.函数中嵌套一个函数
2.外层函数返回内层函数的变量名
3.内层函数对外部作用域有一个非全局的变量进行引用
例子:不带参数的闭包
def func():
num = 100
def count_book():
print("一共有{}本书".format(num))
return count_book
例子:带参数的闭包
def func(num):
def count_book():
print("一共有{}本书".format(num))
return count_book
res = func(100)
print(res.__closure__)
闭包的作用:实现数据的锁定,提高稳定性,把数据锁定在__closure__属性里面,__closure__属性外部的全局
变量不会进行锁定
装饰器
开放封闭原则:软件实体应该是可扩展,而不可修改的。也就是说说,对扩展是开放的,
而对修改是封闭的。
装饰器的作用:在不更改原功能函数内部代码,并且不改变调用方法的情况下为原函数添加新的功能
装饰器的应用场景:
1.登录验证
2.函数运行时间统计
3.执行函数之前准备工作
4.执行函数后清理功能

更多精彩