闭包
- 概念:双重函数嵌套,内层函数可以访问外层函数的变量。
- 基本语法:
bash
def 外部函数名(外部变量):
def 内部函数名():
函数体 #可使用外部函数的变量
return 内部函数名
装饰器
- 概念:特殊的闭包,无需改动目标函数的源代码,即可为其增加新功能。
- 应用场景:希望给 work () 函数增加俩功能:
- 1.在调用 work 前输出 "高效学习知识"
- 2.在调用 work 之后输出 "享受人生"
python
def work():
print("努力工作")
- 装饰器实现:
bash
def work():
print("努力工作")
def outer(func):
def inner():
print("高效学习知识")
func()
print("享受人生")
return inner
if __name__ == "__main__":
fn = outer(work)
fn()