Python 装饰器教程

装饰器(Decorators)是 Python 中一种非常有用的特性,它允许我们修改或增强函数或方法的行为,而无需修改原始代码。下面是一个关于 Python 装饰器的简要教程。

基本概念

装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。这个新函数可以增强或修改原始函数的行为。

语法

def decorator(func):
    def wrapper():
        # 在这里添加额外的代码
        func()
        # 在这里添加额外的代码
    return wrapper

@decorator
def hello_world():
    print("Hello, World!")

hello_world()

实用示例

假设我们想记录函数的执行时间,可以使用装饰器来实现:

import time

def timer(func):
    def wrapper(*args, **kwargs):
        start_time = time.time()
        result = func(*args, **kwargs)
        end_time = time.time()
        print(f"{func.__name__} took {end_time - start_time} seconds to run.")
        return result
    return wrapper

@timer
def sleep_for_seconds(seconds):
    time.sleep(seconds)

sleep_for_seconds(2)

扩展阅读

更多关于 Python 装饰器的信息,可以参考 Python 装饰器官方文档


中心图片:

Python Decorator