Python 関数名を取得する


pythonのオブジェクト

def my_func():
    return 

print(my_func.__name__)
'my_func'

使用例

マルチスレッドの実行時にタスク名(関数名)をスレッド名にする

from threading import Thread

def task1():
    while True:
        break

def task2():
    while True:
        break

task_list = [task1,task2]
for task in task_list:
    th = Thread(target=task, args=(), daemon=True, name=task.__name__)
    th.start()

wrapperにして使う

@shiracamusさんにコメントいただきました。

def greet(callback):
    print("Hello", callback.__name__)
    callback()

def taro():
    print("Hi, I'm Taro.")

def hanako():
    print("Hello, this is Hanako.")

greet(taro)
greet(hanako)
実行結果
Hello taro
Hi, I'm Taro.
Hello hanako
Hello, this is Hanako.