Как поступить с функцией?
Не знаю, что делать. То ли код переписывать, то ли костыли лепить. Есть куча функций. К примеру возьмем 3.
astatic23()
astatic27()
bstatic27()
По итогу некого списка [a, b, a,] нужно подставлять первый элемент списка a к static27(), для того чтобы исполнить функцию.
Как это сделать?
list1 = [a, b, a,]
str(list[0]) + static() # Как это правильно сделать?
Как вообще поступать в таких случаях? Не получается полностью держать в голове весь замысел и периодически приходится выходить из ситауций.
Ответы (1 шт):
Один из вариантов - создать словарь с мапом ваших значений в функции. И потом вызывать их из этого словаря.
def astatic27(): print('astatic27')
def bstatic27(): print('bstatic27')
funcs_map = {'a': astatic27,
'b': bstatic27}
lst = ['a', 'b', 'a']
for el in lst:
funcs_map[el]()
Вызовутся соответствующие функции.
astatic27
bstatic27
astatic27
Ещё можно собрать имя (как строку) и поискать функцию в атрибутах глобального/локального (или где ещё) пространства. Но это уже почти что хакинг.
Пример для глобальных функций:
for el in lst:
globals()[el+'static27']()
Ещё как вариант, собирать имя функции и делать eval. Но так поступать вообще не советую.