当前位置:首页>python>Python基础篇 - 基础装饰器语法

Python基础篇 - 基础装饰器语法

  • 2026-09-02 19:21:04
Python基础篇 - 基础装饰器语法
装饰器

我们在做Python开发或学习时,一定遇到过这样的需求:想给函数加新功能(比如计时、日志),但又不想修改函数本身的代码,也不想重复写相同逻辑。这时候,Python装饰器就该登场了,它就像给函数“穿衣服”,不用动衣服里面的“内核”,就能轻松给函数增添新能力,轻松实现代码复用。其核心能力就是:在不修改原函数代码、不改变原函数调用方式的前提下,为原函数添加额外功能。

一、装饰器底层通用语法

 decorator就是一个装饰器,它装饰的就是函数func(以函数名为入参),并返回一个内部函数inner;在inner函数内部,我们可以执行一些额外的操作,然后调用原始函数func,并返回其结果。

def decorator(func):    def inner(参数):        # 添加功能        func(参数)        # 添加功能    return inner

二、闭包语法实现装饰器

装饰器的底层就是通过闭包来实现的,下面这个小demo演示的就是对数值开根号,对于数值-9,我们需要先取绝对值,可以通过装饰器实现这一功能,从而不用动原函数func。

from math import sqrtdef func(x):    """开根号"""    return sqrt(x)# 装饰器函数decorator装饰函数funcdef decorator(f):    def inner(x):        x = abs(x)  # 求x的绝对值        return f(x)    return innerfunc = decorator(func)print(func(-9))  

三、简便形式:语法糖(如@decorator)实现装饰器

from math import sqrt# 装饰器decorator,装饰函数funcdef decorator(f):    # 内部函数inner的入参与被装饰函数func入参一致    def inner(x):        x = abs(x)  # 求x的绝对值        return f(x)    return inner@decorator    # 语法糖形式,只需要明白装饰的是func函数,也就是入参是funcdef func(x):    """开根号"""    return sqrt(x)

总结:今日我们学习了Python基础篇-基础装饰器语法。Python装饰器本质是用于增强函数功能的Python函数,核心优势的是不修改原函数代码、不改变调用方式,实现代码复用与解耦。其基础语法通过闭包、@装饰器名简化调用。使用过程中需避开未返回内部函数、未调用原函数等细节错误点,学会装饰器是Python从入门到进阶的关键一步。在Python基础篇,后续我们将持续学习Python基础知识,介绍各种算法,祝每一位study er学习愉快。

合集链接
这里是我滴合集内容链接,大家感兴趣就康康吧。
1. 人工智能进阶之路 - 机器学习篇
2. AI发展前点
3. 人工智能进阶之路-Python基础篇
4. 充电er的乱坠闲聊
5. Origin认知
点个 赞 你最好看

最新文章

随机文章