赞
踩
Python的闭包是一种高级的编程技巧,它可以在函数内部定义另一个函数,并返回该函数的引用。这个内部函数可以访问外部函数的变量和参数,即使外部函数已经执行完毕
1)闭包可以避免全局变量的污染,使得代码更加的清晰,易于理解和维护;
2)闭包允许函数以参数形式传递,并且能够记住调用时的参数;
3)使用闭包可以避免使用全局变量,减少命名空间的冲突;
4)闭包可以延长变量的生命周期。
def counter(count=0): current = 0 def start(): # nonlocal 关键字用于在嵌套函数内部使用变量,其中变量不应属于内部函数。 nonlocal current current += count return current return start c = counter(5) print(c()) print(c()) print(c()) c1 = counter(7) print(c1()) print(c1()) print(c1()) print(c())
输出结果
5
10
15
7
14
21
20
def multi(x):
def inner_func(y):
return y ** x
return inner_func
double = multi(2)
triple = multi(3)
print(double(2))
print(double(3))
print(triple(2))
print(triple(3))
上面一个例子中 multi 函数用来创建一个计算指数的工厂,需要一个参数,代表指数值,传入2即计算平方,传入3计算立方
输出结果
4
9
8
27
python中的闭包就介绍到这里,在开发中有以上场景的都可以用到闭包。
欢迎关注,学习不迷路!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。