1.什么是闭包
闭包,又称闭包函数或者闭合函数,其实和前面讲的嵌套函数类似,不同之处在于,闭包中外部函数返回的不是一个具体的值,而是一个函数。一般情况下,返回的函数会赋值给一个变量,这个变量可以在后面被继续执行调用。
闭包的形成条件 1.必须是有函数的嵌套 (外部函数和内部函数) 2.调佣外部函数 会返回内部函数 3.内部函数使用外部函数的变量
# 外部函数 def func_out(num): # num = 4 # 内部函数 def func_inner(num2): print(num+num2) print("内部函数",func_inner) # 返回内部函数 return func_inner if __name__ == '__main__': f = func_out(4) print(f) # f(5) = func_()(5) = func_inner(5) f(5) f(2)
练习..........
def config_name(name):
def say_info(info):
# 将外部函数的参数和内部函数的参数拼接
print(name+":"+ info)
# 返回内部函数
return say_info
if __name__ == '__main__':
# t = config_name("Tom")=say_info
t = config_name("吕浩")
# t("你今天吃点啥") = config_name("Tom")("你今天吃点啥")=say_info("你今天吃点啥")
t("你今天吃点啥")
t("我吃了奥利给")
t("我喜欢狗叫")
d = config_name("妻子戴兰芳")
d("你在吃屎我们就离婚吧")
t("我喜欢吃屎")