Как определить название функции с помощью строки из списка?
Как определить название функции с помощью строки из списка?
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!