python - 如何找到当前函数的名称?

标签 python python-3.x debugging

我知道这看起来很蹩脚,但我希望有一个函数可以访问它自己的名称来打印错误或调试消息。那么就很容易有一个标准的方法来开始打印输出:

print(__myname__,"is reporting the following..."

我更喜欢这样,而不是每次都必须明确键入名称,因为我经常 想要剪切和粘贴此类内容,并且我希望任何名称更改都是自动的,从而更加正确。

这类似于 another question但我想要当前函数的名称,而不是其调用者的名称。

我注意到这个特殊的名字

__name__

这里报告的是包的名称,而不是函数的名称。

最佳答案

您可以使用traceback模块来提取堆栈信息:

import traceback

def current_function_name():
    return traceback.extract_stack()[-2][2]    

def foo():
    print current_function_name()

>>> foo()
foo

关于python - 如何找到当前函数的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52488094/

相关文章:

python - Unpivot/Flatten pandas 数据透视表为一级索引

python - 如何使用TRAINS python自动神奇实验管理器手动注册sci-kit模型?

python - 重复 RSA 加密/解密有时会失败,并出现明文太大错误

python - JSON 未正确保存

python - 使用单独文件中的自定义代码时出现问题

python - 在 Python 中,有没有办法验证某种格式的用户输入?

python - 使用 Python Asyncio 等待 GPIO 中断

debugging - 从进程中将 NodeJs 应用程序切换到 Debug模式

java - 在调试期间更改 eclipse 中的对象引用

android - 调试主屏幕小部件时,调试器在 Android Studio 中断开连接