python中闭包的应用场景和使用闭包的原因
2021/9/5 17:08:14
本文主要是介绍python中闭包的应用场景和使用闭包的原因,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、闭包的应用场景
1. 当做计算器使用
2. 统计函数的被调用次数
3. 当做装饰器使用
二、应用场景代码
def calculate(): """当做计算器使用""" num = 0 def add(value): nonlocal num # 内嵌作用域需要使用nonlocal关键字 num += value return num return add add1 = calculate() print(add1(5)) print(add1(10)) print(add1(15)) add2 = calculate() print(add2(3)) print(add2(13)) print(add2(16)) print(add1(70)) def counter(func): """统计函数的被调用次数""" count = 0 def closure(*args, **kwargs): nonlocal count count += 1 print(f"{func.__name__}被调用了{count}次了") return func(*args, **kwargs) return closure def add(a, b): print(f"SUM: {a + b}") def say_hello(): print("hello") counter_add = counter(add) say_hello = counter(say_hello) counter_add(11, 22) say_hello() counter_add(33, 22) say_hello() say_hello() say_hello() counter_add(33, 22) def decorator(fn): """当做装饰器使用""" symbol = '$' def closure(*args, **kwargs): return symbol + str(fn(*args, **kwargs)) return closure @decorator def add_symbol(number): return number print(add_symbol(200)) print(add_symbol(3000)) print(add_symbol(80000))
二、为什么要使用闭包?
1. 在 Python 中使用闭包的最重要的一点是它们提供某种数据隐藏作为回调函数。这反过来又减少了全局变量的使用。
2. 在某些情况下,使用闭包而不是类可以减少代码大小,节省内存空间。
3. 闭包非常适合替换硬编码常量。
4. 闭包在装饰函数中非常有用。我们在下面的例子中可以看到
参考链接:https://www.codesansar.com/python-programming/closures-applications.htm
这篇关于python中闭包的应用场景和使用闭包的原因的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器