如何利用 Python 的装饰器功能来简化代码?

如何利用 Python 的装饰器功能来简化代码?

示例:

def my_decorator(func):
    def wrapper(*args, **kwargs):
        print("Starting function...")
        result = func(*args, **kwargs)
        print("Ending function...")
        return result
    return wrapper

@my_decorator
def my_function():
    return "Hello, world!"

print(my_function())

运行结果:

Starting function...
Hello, world!
Ending function...

简化方法:

可以使用装饰器的 @ 符号来简化代码,并使用 functools.wraps 函数来包装装饰器。

from functools import wraps

def my_decorator(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        print("Starting function...")
        result = func(*args, **kwargs)
        print("Ending function...")
        return result
    return wrapper

@my_decorator
def my_function():
    return "Hello, world!"

print(my_function())

运行结果:

Starting function...
Hello, world!
Ending function...

其他好处:

  • 减少代码冗余。
  • 提高代码可读性。
  • 允许您轻松添加额外的功能,例如日志记录或错误处理。
相似内容
更多>