1.闭包
闭包就是能够读取其他函数内部变量的函数
1.1 闭包的作用:
保存外部函数的变量,不会随着外部函数调用完而销毁
1.2 闭包的形成条件:
1. 函数嵌套 2. 内部函数必须使用了外部函数的变量或者参数 3. 外部函数返回内部函数 这个使用了外部函数变量的内部函数称为闭包
演示如下:
结果如下:
这里的结果为6 其中外部函数num1 = 5 调用外部函数的变量num1 并输入参数num2 = 1
所以结果为6。
2.装饰器:
实质上也是一个闭包函数,也就是说,他也是一个函数嵌套。
2.1 装饰器的作用:
在不改变原函数的情况下,对已有函数进行额外的功能扩展。
2.2 装饰器的形成条件(与包的区别):
1.不修改已有函数的源代码 2.不修改已有函数的调用方式 3.给已有函数增加额外的功能
示例如下:
这个装饰器的作用是 获取从1到10000循环所需的时间 添加这个计时器的功能
大概格式就是:
1.先定义一个装饰器
2.然后把装饰器加到所需装饰的函数里面 使用装饰器语法的方式装饰带有参数的函数
运行结果为: