理解python装饰器
2021/10/9 14:18:40
本文主要是介绍理解python装饰器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
def decorator(func): def wrapper(x): print("start") func(x) print("stop") return wrapper @decorator def hi(x): print(x) hi(12345678) #a=decorator(hi) #hi=a #hi(12345678)使用装饰器的目的不再赘述。 装饰器的实现利用了python中闭包的特性,闭包基于python中一切皆对象的规则,如函数对象可以被当作返回值抛出,list、dict等结构可以存储对象或函数等。 外层函数的返回值为内层函数的引用,这样形式的嵌套函数被称为闭包,即例子中decorator函数。 装饰器即定义一个闭包,但是它接收的参数是一个函数(即需要被装饰的函数),这个传入的函数,最终流转进闭包中内层函数。由于闭包的特性,内层函数的引用最终被外层函数作为返回值抛出,接收并处理这个返回值即可。
装饰器的使用过程: 原有函数: 函数执行: hi(12345678) 执行结果: 1234578
装饰过程: 使用装饰器: a=decorator(hi) hi=a 可简化: hi=decorator(hi) 函数执行: hi(12345678) 执行结果: start 12345678 stop 可以看到在不改变原函数在上下文调用的情况下,在原函数基础上增加了功能 python中通过一个语法糖简化以上过程,即
@decorator def hi(x):... hi(12345678)
这篇关于理解python装饰器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门