小编典典

如何将函数名作为字符串获取?

all

在 Python 中,如何在不调用函数的情况下将函数名作为字符串获取?

def my_function():
    pass

print get_function_name_as_string(my_function) # my_function is not in quotes

应该输出"my_function"

Python中有这样的功能吗?如果没有,关于如何get_function_name_as_string在 Python 中实现 , 的任何想法?


阅读 95

收藏
2022-02-28

共1个答案

小编典典

my_function.__name__

使用__name__是首选方法,因为它适用于统一。与 不同func_name的是,它也适用于内置函数:

>>> import time
>>> time.time.func_name
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: 'builtin_function_or_method' object has no attribute 'func_name'
>>> time.time.__name__ 
'time'

双下划线也向读者表明这是一个特殊属性。作为奖励,类和模块也有一个__name__属性,所以你只需要记住一个特殊的名称。

2022-02-28