Reputation: 203
Please what does func() mean in python when used inside a function,For example in the code below.
def identity_decorator(func):
def wrapper():
func()
return wrapper
Upvotes: 20
Views: 42071
Reputation: 59113
func
is an argument given to the function identity_decorator()
.
The expression func()
means "call the function assigned to the variable func
."
The decorator is taking another function as an argument, and returning a new function (defined as wrapper
) which executes the given function func
when it is run.
Here is some information about decorators.
Upvotes: 23
Reputation: 4303
I was wondering the same! You can see how it works with the follow example:
def make_pretty(func):
def inner():
print("I got decorated")
func()
return inner
def ordinary():
print("I am ordinary")
pretty = make_pretty(ordinary)
pretty()
Output
I got decorated
I am ordinary
Now when you remove the func() and you try to rerun it:
def make_pretty(func):
def inner():
print("I got decorated")
return inner
def ordinary():
print("I am ordinary")
pretty = make_pretty(ordinary)
pretty()
Output
I got decorated
You see the the decorated function was not called. Please have a look here https://www.programiz.com/python-programming/decorator
Upvotes: 18