Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does `@` mean in Python?

Tags:

python

syntax

What does @ mean in Python?

Example: @login_required, etc.

like image 817
omg Avatar asked Nov 28 '22 02:11

omg


1 Answers

It is decorator syntax.

A function definition may be wrapped by one or more decorator expressions. Decorator expressions are evaluated when the function is defined, in the scope that contains the function definition. The result must be a callable, which is invoked with the function object as the only argument. The returned value is bound to the function name instead of the function object. Multiple decorators are applied in nested fashion.

So doing something like this:

@login_required
def my_function():
    pass

Is just a fancy way of doing this:

def my_function():
    pass
my_function = login_required(my_function)

For more, check out the documentation.

like image 187
Paolo Bergantino Avatar answered Dec 19 '22 10:12

Paolo Bergantino