Python装饰器教学

本文介绍了Python中的装饰器,包括基本用法、带参数的装饰器、装饰器工厂,以及实际应用场景如日志记录。通过实例演示了如何使用装饰器增强函数并记录日志信息。

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

Python装饰器教学

一、装饰器简介

在Python中,装饰器是一种高级语法特性,允许你修改或增强函数、方法或类的行为,而无需修改其源代码。装饰器本质上是一个接受函数作为参数的函数,并返回一个新的函数对象。

二、装饰器的基本用法

下面是一个简单的装饰器示例:

def my_decorator(func):
    def wrapper():
        print("Before function call")
        func()
        print("After function call")
    return wrapper

@my_decorator
def say_hello():
    print("Hello!")

say_hello()

输出:

Before function call
Hello!
After function call

在这个例子中,my_decorator 是一个装饰器函数,它接受一个函数 func 作为参数,并返回一个新的函数 wrapperwrapper 函数在调用原始函数 func 之前和之后分别打印一些内容。

通过使用 @my_decorator 语法,我们可以将装饰器应用到任何函数上,如 say_hello 函数。这实际上是将 say_hello 函数作为参数传递给 my_decorator 函数,并将返回的新函数对象重新赋值给 say_hello

三、带参数的装饰器

如果原始函数需要接受参数,我们可以在 wrapper 函数中添加相应的参数,如下所示:

def my_decorator(func):
    def wrapper
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值