Что делает метод eval python?
Метод eval в Python выполняет строку, переданную ему в качестве аргумента, как выражение на языке Python и возвращает результат выполнения.
x = 1
y = 2
result = eval("x + y")
print(result)
# Вывод: 3
Внимание: Использование eval может быть опасным, так как позволяет выполнять произвольный код, что может привести к уязвимостям в безопасности.
Функция eval()
анализирует переданную ей строку и если строка окажется кодом, то он будет выполнен:
x = 'print(55)'
eval(x) # => 55
x = '4 + 7'
print(eval(x)) # => 11
x = '2 > 11'
print(eval(x)) # => False
Но стоит с большой осторожностью пользоваться этой функцией и уж точно ни в коем случае нельзя передавать ей данные, которые может ввести пользователь. Функция eval()
выполнит любой код, который сможет распознать и если, допустим, ей передать строку rm -rf /
, то корневая директория (если говорим о Linux) будет удалена без всяких вопросов и предостережений. Поэтому следует помнить о том, что пользоваться этой функцией надо с осторожностью и не предоставлять ей данные, вводимые пользователем.