[u'String']
- текстовое представление списка, содержащего строку Unicode в Python 2.
Если вы запустите print(some_list)
, то это эквивалентно
print'[%s]' % ', '.join(map(repr, some_list))
, т. Е. Для создания текстового представления объекта Python типа list
, для каждого элемента вызывается функция repr()
.
Не путайте объект Python и его текстовое представление - repr('a') != 'a'
, и даже текстовое представление текстового представления отличается: repr(repr('a')) != repr('a')
.
repr(obj)
возвращает строку, которая содержит печатное представление объекта. Его цель - быть однозначным представлением объекта, который может быть полезен для отладки в REPL. Часто eval(repr(obj)) == obj
.
Чтобы не вызывать repr()
, вы можете печатать элементы списка напрямую (если все они являются строками Unicode), например: print ",".join(some_list)
- он печатает список строк через запятую: String
Не кодировать строку Unicode в байты, используя жестко закодированную кодировку символов, вместо этого печатать Unicode напрямую . В противном случае код может завершиться сбоем, поскольку кодировка не может представлять все символы, например, если вы попытаетесь использовать кодировку 'ascii'
с не-ascii символами. Или код молча создает mojibake (поврежденные данные передаются далее по конвейеру), если среда использует кодировку, несовместимую с жестко закодированной кодировкой.