Python下的闭包函数
# ## 闭包函数 """ 概念: 内函数使用了外函数的局部变量 并且外函数把内函数返回出来的过程,叫做闭包 这个内函数叫做闭包函数 """ # 示例 # 1、基本语法 def func_1(): father = "100" def func_2(): print("这辆汽车的造价是: {}万元.".format(father)) return func_2 func = func_1() print(func) func() # => func_2() # 2、闭包函数升级 def func_3(): jiejie = "马毅" meimei = "马贰" money = 1000 def jiejie_hobby(): nonlocal money money -= 500 print("买名牌包包,名牌手表,名牌大衣,名牌鞋子......家里的钱还剩下{}".format(money)) def meimei_hobby(): nonlocal money money -= 400 print("买了一辆小汽车,家里的钱还剩下{}".format(money)) def big_guanjia(): return jiejie_hobby, meimei_hobby return big_guanjia func_res = func_3() print(func_res) tup_res = func_res() print(tup_res) tup_res[0]() # jiejei tup_res[1]() # meimei # 3、闭包函数扩展 # 3.1、 闭包特点 def outer(val): def inner(num): return num + val return inner func_4 = outer(10) res = func_4(8) print(res) # 3.2、闭包的意义 def clickfunc(): global clichnum clichnum += 1 print(clichnum) # 模拟点击操作,点击一次就调用一次 clickfunc() clickfunc() clickfunc() clickfunc() # 3.3、用闭包函数进行改造 def clickfunc(): x = 0 def func(): nonlocal x x += 1 print(x) return func clickfunc2 = clickfunc() clickfunc2() clickfunc2() clickfunc2()