Python: 闭包 closure
1 闭包三要素
必须有一个内嵌函数
内嵌函数必须引用外部函数中变量
外部函数返回值必须是内嵌函数
2 语法
# 语法 def 外部函数名(参数): 外部变量 def 内部函数名(参数): 使用外部变量 return 内部函数名 # 调用 变量 = 外部函数名(参数) 变量(参数)
3 练习
def closure(name): def func(word): nonlocal name name = name + "说" print(f"{name}:{word}") return func closure_1 = closure("张三") closure_2 = closure("李四") closure_1("嘻嘻!") closure_2("哈哈")
运行结果: 张三说:嘻嘻! 李四说:哈哈