风火编程--python装饰器, 自定义装饰器

本文深入解析Python装饰器的概念与作用,介绍如何在不修改函数主体的情况下,利用装饰器为函数添加额外的功能,如前置和后置逻辑。同时,文章探讨了装饰器的执行时机,以及如何自定义装饰器来保持被装饰函数的元数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

装饰器

定义/作用
在不改变函数体的情况下, 对函数增加前置或后置逻辑.

** 装饰器的执行时间**
装饰器在函数定义后立即执行, 即模块导入时执行, 多个装饰器从上向下执行.

自定义装饰器
使用functools.wraps装饰器,

from functools import wraps
def wrapper(func):
    """定义装饰器的函数"""
    @wraps(func)
    def inner(*args, **kwargs):
        """内层函数"""
        print("before func")
        result = func(*args, **kwargs)
        return result
        print("after func")
    return inner
@wrapper
def function(a):
    """被装饰函数"""
    print("here is func, param is {}".format(a))

function()

相当于

function = wrapper(function)

如果不使用functools.wraps, inner会遮盖function的__doc__和__name__.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值