在Python中,`@`符号用于表示装饰器(Decorator)。装饰器是一种特殊类型的函数,它可以附加到其他函数或方法上,以在不修改原始函数代码的情况下,增加额外的功能或特性。装饰器通常用于日志记录、性能测试、事务处理、缓存等场景。
装饰器的基本语法如下:
@decorator_name
def function_name(arguments):
function body
装饰器本质上是一个接受函数作为参数的函数,并返回一个新的函数,这个新函数通常会包含一些额外的逻辑,然后调用原始函数。
例如,一个简单的装饰器可能看起来像这样:
def my_decorator(func):
def wrapper():
print("Something is happening before the function is called.")
func()
print("Something is happening after the function is called.")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
say_hello()
在这个例子中,`say_hello` 函数被装饰器 `my_decorator` 装饰,因此当我们调用 `say_hello` 时,实际上是调用了 `wrapper` 函数,它会在调用 `say_hello` 函数之前和之后分别打印一些信息。
需要注意的是,装饰器是Python 3.5及以后版本引入的功能