How to get a function name as a string?

后端 未结 12 2080
后悔当初
后悔当初 2020-11-22 04:35

In Python, how do I get a function name as a string, without calling the function?

def my_function():
    pass

print get_function_name_as_string(my_function         


        
12条回答
  •  一生所求
    2020-11-22 04:56

    my_function.__name__
    

    Using __name__ is the preferred method as it applies uniformly. Unlike func_name, it works on built-in functions as well:

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

    Also the double underscores indicate to the reader this is a special attribute. As a bonus, classes and modules have a __name__ attribute too, so you only have remember one special name.

提交回复
热议问题