Как читать лямбда-функции с eval [duplicate]

9
задан it_is_a_literature 21 March 2014 в 14:18
поделиться

3 ответа

Для динамического выполнения операторов используется инструкция exec.

>>> exec('y=3')
>>> y
3

Использование Eval: eval(expression)

Аргумент expression передается и оценивается как выражение Python

, например:

>>> s=3
>>> eval('s==3')
True
>>> eval('s + 1')
4
>>> eval('s')
3
>>> eval('str(s)+"test"')
'3test'
7
ответ дан suhailvs 22 August 2018 в 02:22
поделиться

Вы можете это выражение.

eval('"x"+str(i)+"="+"123"')
-1
ответ дан Exa 22 August 2018 в 02:22
поделиться

eval() допускает только выражения . Назначение - это не выражение, а заявление; вам нужно будет использовать exec.

Даже тогда вы могли бы использовать словарь globals() для добавления имен в глобальное пространство имен, и вам не нужно было бы использовать произвольное выполнение выражения.

Вы действительно не хотите этого делать, вам нужно сохранить данные из ваших имен переменных и вместо этого использовать список или словарь:

x = ['123'] * 10

предоставит вам список, который вы можете указать как x[0], x[1] и т. д. без необходимости выполнять произвольные выражения.

12
ответ дан Martijn Pieters 22 August 2018 в 02:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: