如何解决获取继承方法中的函数名称
我正在使用以下代码:
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 举报,一经查实,本站将立刻删除。