После поиска какой-то ссылки в Интернете я все еще не понимаю, как на самом деле работает eval (), возможно, мне не хватает ключевого компонента, надеюсь, кто-то может направить меня к нужным документам или объяснениям.
Предположим:
def foo(x,y):
print(x)
print(y)
Используйте eval () для вызова foo ().
Пример 1:
eval('foo(1,2)')
Пример 2:
eval('foo')(1,2)
Согласно документации на python 3.6, пример того, как я вызываю eval (), - это то, как это должно быть сделано, так как я передаю все в виде строки. Однако, например, # 2, я до сих пор не понимаю, почему интерпретатор Python также оценивает правильно. Для меня при запуске eval () во втором примере интерпретатор python должен вернуть TypeError, требующий 2 пропущенных аргумента. Я надеюсь, что кто-то может указать мне правильное направление.