Как дать ссылкам на записи Hashmap друг друга? [Дубликат]

Ned Batchelder сказал:

Это немного опасно в зависимости от того, откуда идет строка, но как насчет:

>>> s = '\u003cfoo\u003e'
>>> eval('u"'+s.replace('"', r'\"')+'"').encode('ascii')
'<foo>'

На самом деле этот метод можно сделать безопасным следующим образом:

>>> s = '\u003cfoo\u003e'
>>> s_unescaped = eval('u"""'+s.replace('"', r'\"')+'-"""')[:-1]

Учесть строку тройной кавычки и тире прямо перед закрытием 3-кавычек.

  1. Использование 3-кавычной строки гарантирует, что если пользователь вводит «\\» (пробелы, добавленные для визуальной ясности) в строку, это не нарушит оценщика;
  2. Черта в конце отказоустойчивость в случае, если строка пользователя заканчивается символом «\». Прежде чем присваивать результат, мы нарезаем вставленную черту с помощью [: -1]

. Поэтому не нужно беспокоиться о том, что вводит пользователь, если оно будет записано в необработанном формате .

1
задан robot_rover 2 March 2019 в 21:15
поделиться