+ 3
What is the use of nested function inside decorator function while we are getting same result without it?
5 Réponses
+ 2
Théophile
def decor(func):
print("============")
func()
print("============")
def print_text():
print("Hello world!")
print_text = decor(print_text)
this code gives the same result even without wrap then why do we use wrap and print text at the end
+ 2
A decorator must return a function.
Look at your two codes. In the fisrt one, the "decorator" returns None. So :
print_text = decor(print_text)
# print_text is now None, and cannot be called again.
In your second example, the decorator returns a function, so print_text is still a function and can be used again.
I think you misunderstood the purpose of decorators. The goal of a decorator is to "modify" the behavior of a function, and that's all! In your first example, you don't change the behavior of print_text.
+ 1
def decor(func):
def wrap():
print("============")
func()
print("============")
return wrap
def print_text():
print("Hello world!")
decorated = decor(print_text)
decorated()
This is the original one where without using wrap function we are getting the same result..
+ 1
Théophile then func() is also a function which is parameter of decor function what is use of that func function here & Can you please elaborate it?
0
Can you provide an exemple? I don't see why you're saying that it is the same with a nested function and without a nested function...