1

考虑这个例子:

调试.py:

import logging

class log_funcname:

    def __init__(self, the_logger):
        self.the_logger = the_logger

    def __call__(self, fn):
        def simply_call(*args, **kwargs):
            self.the_logger.critical(fn.func_name)
            return fn(*args, **kwargs)
        return simply_call

logger = logging.getLogger()

formatter = logging.Formatter("%(lineno)s")
ch = logging.StreamHandler()
ch.setFormatter(formatter)
logger.addHandler(ch)

@log_funcname(logger)
def hello():
  pass

hello()

输出:

$ python debug.py
10

我的意思是创建一个调用记录器的函数,将执行实际发生的行号和文件名传递给它。如果我希望示例应用输出 25 而不是 10,那我应该改变什么?

4

0 回答 0