如何利用 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...
其他好处:
- 减少代码冗余。
- 提高代码可读性。
- 允许您轻松添加额外的功能,例如日志记录或错误处理。