微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

获取继承方法中的函数名称

如何解决获取继承方法中的函数名称

我正在使用以下代码

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 举报,一经查实,本站将立刻删除。