闭包函数
闭包函数 函数对象:可以将定义在函数内的函数返回到全局使用,从而打破函数的层级限制。 名称空间与作用域:作用域关系在函数定义阶段时就已经固定死了,与调用位置无关,即在任意位置调用函数都需要跑到定义函数时找到作用域关系。 def f1(): x = 1 def inner(): print(x) return inner func = f1() x = 2 def f2(): x = 3 func() f2() 1 一、什么是闭包? 闭包:闭是封闭(函数内部函数),包是包含(该内部函数对外部作用域而非全局作用域的变量的引用)。闭包指的是函数内部函数对外部作用域而非全局作用域的引用。 提示:之前我们都是通过参数将外部的值传给函数,闭包提供了另外一种思路,包起来喽,包起呦,包起来哇。 def outter(): x = 1 def inner(): print(x) return inner f = outter() def f2(): x = 2 f() f2() 1 1.1 两种为函数传参的方式 为函数传参的方式一:使用参数的形式 def func(x): print(x) func(1) func(1) func(1) 1 1 1 为函数传参的方式二:包给函数 def outter(x): x = 1 def inner(): print(x) return inner f =