def loggingDecorator(func):
"""记录日志的装饰器"""
def wrapperLogging(*args, **kwargs):
logging.info("开始执行 %s() ..." % func.__name__)
func(*args, **kwargs)
logging.info("%s() 执行完成!" % func.__name__)
return wrapperLogging
def showInfo(*args, **kwargs):
print("这是一个测试函数,参数:", args, kwargs)
decoratedShowInfo = loggingDecorator(showInfo)
decoratedShowInfo('arg1', 'arg2', kwarg1=1, kwarg2=2)
我期待的结果是:
INFO:root:开始执行 showInfo() ...
这是一个测试函数,参数: ('arg1', 'arg2') {'kwarg1': 1, 'kwarg2': 2}
INFO:root:showInfo() 执行完成!
但实际结果是:
这是一个测试函数,参数: ('arg1', 'arg2') {'kwarg1': 1, 'kwarg2': 2}
INFO:root:开始执行 showInfo() ...
INFO:root:showInfo() 执行完成!
或者:
INFO:root:开始执行 showInfo() ...
INFO:root:showInfo() 执行完成!
这是一个测试函数,参数: ('arg1', 'arg2') {'kwarg1': 1, 'kwarg2': 2}
请问各位这是为何啊
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.