Python修饰器是一种特殊的函数,可以用来修改、装饰其他函数,以增强其功能。使用修饰器可以方便地对函数进行扩展,而不需要修改函数本身的代码。下面介绍Python修饰器的使用方式:

  1. 定义修饰器函数

修饰器函数是一个普通的Python函数,它接收一个函数作为参数,并返回一个新的函数。修饰器函数通常使用@符号来标识,将其放在需要装饰的函数之前。

例如,下面是一个简单的修饰器函数,用来打印函数的执行时间:

import time

def timer(func):
    def wrapper(*args, **kwargs):
        start_time = time.time()
        result = func(*args, **kwargs)
        end_time = time.time()
        print(f"Time taken: {end_time - start_time:.6f} seconds")
        return result
    return wrapper
  1. 使用修饰器

使用修饰器只需要在需要装饰的函数之前,添加修饰器函数的名称,使用@符号进行标识。

例如,下面是一个需要装饰的函数,用来计算两个数的和:

def add_numbers(a, b):
    return a + b

使用修饰器对其进行装饰,代码如下:

@timer
def add_numbers(a, b):
    return a + b

这样就完成了对函数的装饰,每次调用add_numbers函数时,都会自动执行timer修饰器函数,打印出函数的执行时间。

  1. 多个修饰器的使用

Python允许使用多个修饰器对一个函数进行装饰,这样可以实现更加复杂的功能。

例如,下面是一个同时使用两个修饰器的示例:

def timer(func):
    def wrapper(*args, **kwargs):
        start_time = time.time()
        result = func(*args, **kwargs)
        end_time = time.time()
        print(f"Time taken: {end_time - start_time:.6f} seconds")
        return result
    return wrapper

def logger(func):
    def wrapper(*args, **kwargs):
        print(f"Calling function '{func.__name__}' with arguments: {args}, {kwargs}")
        result = func(*args, **kwargs)
        print(f"Function '{func.__name__}' returned: {result}")
        return result
    return wrapper

@logger
@timer
def add_numbers(a, b):
    return a + b

这样,每次调用add_numbers函数时,都会先执行logger修饰器函数,打印出函数的参数和返回值,然后执行timer修饰器函数,打印出函数的执行时间。

python 修饰器使用方式

原文地址: http://www.cveoy.top/t/topic/uhe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录