【发布时间】:2020-12-10 05:02:52
【问题描述】:
如果我曾经在我的函数中使用了装饰器,我怎么能单独运行这个函数,而不嵌入到装饰器功能中?
例如,我有一个函数printArg,它会打印一个参数。对于某些可用性,我需要将它与datetime.now()“混合”。为此我写了一个装饰器timeCalled。现在每次我打电话给printArg 时也会调用一个装饰器。
有没有办法单独调用printArg,所以我不会重复自己并写另一个没有装饰器功能的“printArg”(datetime.now())?
from datetime import datetime
def timeCalled(func):
def wrapper(*args, **kwargs):
print(f'{datetime.now()}: Function called {func.__name__}')
result = func(*args, **kwargs)
return result
return wrapper
@timeCalled
def printArg(arg):
print(f'Your arg is {arg}')
printArg('Mama')
【问题讨论】:
-
我觉得你对这个概念本身有点困惑,这里试试这个gist.github.com/Zearin/…
标签: python python-3.x decorator python-decorators