理解闭包
昨天学到python的切片,有些地方不太理解,只能通过定义上去理解
1 def one(): 2 def two(): 3 print("hello") 4 return two
如上就是一个普通的闭包
接着来一个带参数的闭包
1 def one(i): 2 print("i am "+i) 3 def two(j): 4 print("hello"+j) 5 return two
调用one(‘超小咪’)
输出 i am 超小咪
这里还返回了一个two函数的引用,所以可以来一个赋值操作
f = one(‘超小咪’)
f(‘tom’)
输出 i am 超小咪
hello tom
来一个迷惑人的
def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs
我们再调用fs里的每个函数
fs[0](),fs[1](),fs[2]()
可能以为会输出1,4,9
其实输出的是9,9,9