В настоящее время я преподаю Python студентам первого курса университета, и я был удивлен, узнав, что эта, казалось бы, безобидная функция input
, которую некоторые из моих студентов решили использовать (и были сбиты с толку странным поведением), скрывала за собой вызов eval
.
Итак, мой вопрос: почему функция input
вызывает eval
, и что это может быть полезно для этого, было бы безопаснее d o с raw_input
? Я понимаю, что это было изменено в Python 3, но в первую очередь это кажется необычным дизайнерским решением.