def sayName(func):
print('name')
def inner():
print("I'm Yu")
return func()
return inner
def sayAge(func):
print('age')
def inner():
print("i'm 30")
return func()
return inner
@sayName
@sayAge
def sayHi():
print('Hello, World')
def f():
print('Hello, World')
if __name__ == '__main__':
print("decorated fun")
sayHi()
print("decorated fun")
sayHi()
print("undecorated fun : f")
sayName(sayAge(f))()
g = sayName(sayAge(f))
print("undecorated fun : g ")
g()