Python 中@方法
时间: 2023-03-21 14:03:08 浏览: 113
在 Python 中,@符号被称为装饰器(decorators),用于修改或增强函数或类的行为。装饰器是一个函数,它接受一个函数或类作为参数,然后返回一个新的函数或类。
装饰器通常在函数或类定义之前使用,它们可以被用于修改函数的参数、返回值、执行流程,或者给类添加属性和方法。装饰器可以被用于任何可调用对象,包括函数、方法、类和生成器等。
下面是一个示例,展示如何使用装饰器来计算函数的执行时间:
```python
import time
def timing_decorator(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"Function {func.__name__} took {end - start:.4f} seconds to run.")
return result
return wrapper
@timing_decorator
def my_function():
time.sleep(1)
my_function()
```
在上面的示例中,timing_decorator 是一个装饰器函数,它接受一个函数作为参数,并返回一个新的函数 wrapper。wrapper 函数计算了 my_function 函数的执行时间,并在函数执行后打印出来。
通过将 @timing_decorator 放在 my_function 函数定义的上面,我们可以把 my_function 函数传递给 timing_decorator 装饰器,并将其变成一个计时函数。当我们调用 my_function 函数时,它会自动调用 wrapper 函数,计算函数的执行时间并打印出来。
阅读全文