Python 装饰器入门的四则简单示例

2024-12-30 15:15:33   小编

Python 装饰器入门的四则简单示例

在 Python 编程中,装饰器是一种强大的工具,它可以在不修改被装饰函数源代码的情况下,为函数添加额外的功能。下面通过四则简单示例来帮助您入门 Python 装饰器。

示例一:添加日志功能

def log_decorator(func):
    def wrapper(*args, **kwargs):
        print(f"调用函数 {func.__name__}")
        result = func(*args, **kwargs)
        print(f"函数 {func.__name__} 执行完毕")
        return result
    return wrapper

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

print(add_numbers(2, 3))

示例二:计算函数执行时间

import time

def time_decorator(func):
    def wrapper(*args, **kwargs):
        start_time = time.time()
        result = func(*args, **kwargs)
        end_time = time.time()
        print(f"函数 {func.__name__} 执行时间为:{end_time - start_time} 秒")
        return result
    return wrapper

@time_decorator
def long_running_function():
    time.sleep(2)

long_running_function()

示例三:参数验证

def validate_params_decorator(func):
    def wrapper(*args, **kwargs):
        if len(args) < 2:
            print("参数数量不足")
            return
        result = func(*args, **kwargs)
        return result
    return wrapper

@validate_params_decorator
def multiply_numbers(a, b):
    return a * b

multiply_numbers(3)

示例四:缓存结果

def cache_decorator(func):
    cache = {}
    def wrapper(*args):
        if args in cache:
            print("从缓存中获取结果")
            return cache[args]
        result = func(*args)
        cache[args] = result
        print("将结果缓存")
        return result
    return wrapper

@cache_decorator
def factorial(n):
    if n == 0 or n == 1:
        return 1
    else:
        return n * factorial(n - 1)

factorial(5)
factorial(5)

通过以上四则简单示例,您应该对 Python 装饰器有了初步的认识和了解。装饰器在实际编程中有着广泛的应用,可以使代码更加简洁、灵活和可维护。不断探索和实践,您将能够更好地掌握这一强大的编程技术。

TAGS: Python 示例 Python 基础 Python 装饰器入门 四则简单示例

欢迎使用万千站长工具!

Welcome to www.zzTool.com