I am trying to wrap my head around python's decorator. But there is something I don't understand. This is my code, my question is related to func_decorate2
(decorator with parameter).
def func_decorate(f):
def wrapper():
print('wrapped');
f()
return wrapper
@func_decorate
def myfunc1():
print('func1')
def func_decorate2(tag_name):
def _(f):
print('underscore')
return f
return _
@func_decorate2('p')
def myfunc2():
print('func2')
print('call func1')
myfunc1()
print('call func2')
myfunc2()
Will output :
underscore
call func1
wrapped
func1
call func2
func2
Why do I have underscore
first in this example ?
Thanks