Python装饰器:理解原理及实战案例
Python装饰器是一种特殊类型的函数,它可以在不改变原函数代码的情况下,为原函数增加额外的功能。这类似于Java中的接口或者C#的委托。
理解装饰器的原理:
- 装饰器通常定义在外部,作为接收者的是待装饰的函数。
- 当一个函数被声明为装饰器时,Python解释器会自动在其前面调用这个装饰器函数。
- 装饰器内部可以使用原函数名(self),并执行一些额外的操作。
实战案例:
以下是一个简单的装饰器例子,用于计算函数执行的时间:
import time
def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs))
end_time = time.time()
print(f'Function {func.__name__}} execution time: {end_time - start_time} seconds')
return result
return wrapper
@timer
def slow_function(n):
time.sleep(n)
return n
print(slow_function(2)))
在这个例子中,timer
装饰器给slow_function
函数增加了计算执行时间的功能。
还没有评论,来说两句吧...