Получить название функции во время цикла

Есть такая переменная содержащая кортеж из функций:

handrankorder = (royal_flush,straight_flush,four_of_a_kind,full_house,
                 flush,straight,three_of_a_kind,two_pair,
                 one_pair,high_card)

def determine_rank(hand):
    for ranker in handrankorder:
        rank = ranker(hand)

        if rank:
            break
    return rank

При прохождении цикла, как можно узнать какая функция на данный момент выполняется? Именно название.


Ответы (1 шт):

Автор решения: hedgehogues

Решение 1

Воспользуйтесь magic-методом __name__. Для этого Вам следует сделать следующее:

def my_func():
    pass

print(my_func.__name__)

Proofs: 1, 2

Решение 2

В том же кортеже задайте строковые названия функций, к которым будете обращаться в нужный момент.

→ Ссылка