Как определить название функции с помощью строки из списка?

Как определить название функции с помощью строки из списка?

listname = ["first", "second"]

def listname[0]():
    (...)

После этого появляется ошибка

SyntaxError: Invalid Syntax

Что нужно сделать что бы это было возможно? Я возможно тупой и что-то не так делаю либо такой возможности не существует?


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

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

Для того что бы сделать функцию с названием из списка можно использовать exec() Вот пример:

listname = ("first", "second")

for funcname in listname:
    exec(f"""def {funcname}():
        print("{funcname}")""")
→ Ссылка
Автор решения: CrazyElf

Поскольку в питоне всё является переменными, в том числе имена функций, то можно сделать, к примеру, так. Описать функцию с произвольным названием, а потом дать на неё ссылку с помощью переменной, которую вы можете уже назвать как хотите:

listname = ["first", "second"]

def tempFunc():
    print("I'm the function!")

globals()[listname[0]] = tempFunc
print(first())

Вывод:

I'm the function!
→ Ссылка