Вызов строки как функции с помощью eval()

#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)