当前位置:   article > 正文

Python-闭包_python 闭包

python 闭包
介绍

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())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

输出结果

5
10
15
7
14
21
20
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
使用闭包实现一个函数工程
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))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

上面一个例子中 multi 函数用来创建一个计算指数的工厂,需要一个参数,代表指数值,传入2即计算平方,传入3计算立方

输出结果

4
9
8
27
  • 1
  • 2
  • 3
  • 4

python中的闭包就介绍到这里,在开发中有以上场景的都可以用到闭包。


欢迎关注,学习不迷路!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/855911
推荐阅读
相关标签
  

闽ICP备14008679号