问题描述
我正在使用以下代码:
import time
import logging
import os
root = logging.getLogger()
root.setLevel(os.environ.get("LOGLEVEL","DEBUG"))
def timed(func):
"""This decorator prints the execution time for the decorated function."""
def wrapper_class():
def wrapper(*args,**kwargs):
start = time.time()
result = func(*args,**kwargs)
end = time.time()
logging.debug("{} ran in {}s".format(func.__qualname__,round(end - start,2)))
return result
return wrapper
return wrapper_class()
class AClass:
@timed
def __call__(self,*args):
return self.run(*args)
class BClass(AClass):
def run(self,*args):
# Does things
return "Done"
BClass().__call__()
记录时间时,我期望的是类似
DEBUG:root:BClass.__call__ ran in 26.22s
但是我得到了:
DEBUG:root:AClass.__call__ ran in 26.22s
我有多个继承自AClass的类,我想知道哪个正在运行。如何修改包装器以显示继承的类的名称?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)