问题描述
我正在尝试一个带有装饰器功能的简单 python 程序。奇怪的是程序只执行了装饰器函数的print语句,调用函数main_print却没有执行?
decor.py
def decorator(some_func):
def wrapper():
print('execute wrapper function from the decorator function')
return wrapper
@decorator
def main_print():
print('executing main_print')
main_print()
$ python3 decor.py
print('execute wrapper function from the decorator function')
解决方法
我认为你必须调用装饰器内部的函数,例如
decor.py
def decorator(some_func):
def wrapper():
print('execute wrapper function from the decorator function')
some_func() # call the passed function
return wrapper
@decorator
def main_print():
print('executing main_print')
main_print()