#python #python-3.x #eval
#python #python-3.x #eval
Вопрос:
Я хочу вызвать функцию append для списка с приложением, переданным в виде строки. Например:
List = [1,2]
func = 'append'
value = 3
# I wish to call List.append(value)
Я знаю, что есть способ использовать eval
, но я не могу понять это.
Комментарии:
1.
if func == 'append': List.append(value)
?2. У Остина это было, но я также предлагаю переосмыслить процесс.
eval
Вы хотите, может быть сделано с помощьюeval( "List." func "(value)" )
, но это чрезвычайно опасно и крайне не рекомендуется.
Ответ №1:
Вы можете использовать getattr
встроенную функцию:
>>> my_list = [1, 2]
>>> func = 'append'
>>> value = 3
>>> getattr(my_list, func)(value)
>>> my_list
[1, 2, 3]
Ответ №2:
Используйте getattr
.
List = [1,2]
func = 'append'
value = 3
f = getattr(List, func)
f(value)
print(List)