如何获取创建类实例的函数的名称?

2024-10-01 19:29:16 发布

您现在位置:Python中文网/ 问答频道 /正文

到目前为止,我一直在使用它来获取正在调用的函数的名称:

functionId = sys._getframe(1).f_code.co_name

但是,如果我使用一个类,事情会变得有点复杂。例如,我有一个类,它应该返回一个包含调用者函数名的消息:

def myFunction():
    # Set the footprint at the start of each function.
    debug = verbose.debugMessage(verbosityState)
    debug.setFunctionFootprint()

    # The rest of the function.
    debug.verbosity(1, "This is just a plain info message.")

如您所见,我正在创建调试类的一个实例,我要做的第一件事是,向类中传递一个变量。但是,为了激活函数名提取过程,我需要为此调用一个方法,这个位:debug.setFunctionFootprint()

然后消息中会有myFunction。但是,有没有更优雅的方法呢?不需要调用方法?你知道吗

另外,另一个问题是,一旦我创建了debug实例,就设置了函数名,为了在另一个函数中重用它,我需要再次调用该方法。你知道吗


Tags: ofthe实例方法函数debug名称消息
1条回答
网友
1楼 · 发布于 2024-10-01 19:29:16

Python的内置日志模块将提供解决此问题所需的功能。你知道吗

import logging

def myFunction():
    logger = logger.getLogger(__name__)
    logger.info("This is just a plain info message.")
    logger.debug("This is a debug message")

可以控制详细级别,以便显示“info”消息,但只有通过 level=logging.INFO 参数满足某个详细级别时,才会显示“debug”消息。详情请参阅Official Python Logging Documentation。你知道吗

谢谢你的回答和帮助。你知道吗

相关问题 更多 >

    热门问题