如何获取执行当前代码的函数名称?
获取当前执行的函数名称(Python)
以下几种方法可以实现你要的效果,操作简单直接:
方法1:使用inspect.currentframe()
通过栈帧对象直接提取函数名称,推荐这种方式,内存友好:
import inspect def example(foo: str = "bar"): # 获取当前函数对应的栈帧 frame = inspect.currentframe().f_back try: print(frame.f_code.co_name) # 输出:example finally: del frame # 释放栈帧引用,避免内存泄漏
方法2:使用inspect.stack()
从栈信息列表中读取函数名,代码更简洁:
import inspect def example(foo: str = "bar"): # 栈列表第一个元素对应当前函数的执行上下文 print(inspect.stack()[0].function) # 输出:example
方法3:直接引用函数__name__属性
如果函数名固定不变,可直接静态引用:
def example(foo: str = "bar"): print(example.__name__) # 输出:example
说明:前两种是动态获取方式,即使函数名被修改或赋值给其他变量,依然能正确拿到当前执行的函数名;第三种是静态引用,函数名变更后需要同步修改代码。
内容的提问来源于stack exchange,提问作者vlone
相关产品推荐
相关产品推荐

