тип байтов в Python 2.7 и PEP-358

Возможно, для всех полей вашего POJO нужны Getter и Setter.

Я исправил его в соответствии с этой проблемой. ссылка: Spring MVC - HttpMediaTypeNotAcceptableException

И 406 не является полезным сообщением для исправления ошибки. Вы должны отлаживать коды и видеть, что Исключение находится на земле.

29
задан igaurav 30 October 2014 в 11:43
поделиться

3 ответа

Тип bytes был введен в Python 3, но в PEP обсуждается изменчивая последовательность (bytes является неизменной), которая была введена в Python 2.6 под названием bytearray.

PEP явно не был реализован как заявлено (и он говорит, что он был частично заменен PEP 3137 ), но я думаю, что это только вопрос переименования вещей, а не отсутствующих функций. В Python 2 bytes является просто псевдонимом для str, чтобы помочь прямой совместимости, и здесь тоже есть красная сельдь.

Пример использования bytearray:

>>> a = bytearray([1,2,3])
>>> a[0] = 5
>>> a
bytearray(b'\x05\x02\x03')
39
ответ дан Scott Griffiths 30 October 2014 в 11:43
поделиться

Новый тип bytes имеет только 3.x . Встроенный 2.x bytes является просто псевдонимом типа str. В 2.x нет нового типа с именем bytes; Просто новый псевдоним и буквальный синтаксис для str.

Вот фрагмент документации , который всем нравится:

Python 2.6 добавляет bytes как синоним для типа str, а также поддерживает b'' обозначения.

2.6 str отличается от типа байтов 3.0 различными способами; В частности, конструктор совершенно другой. В версии 3.0 bytes([65, 66, 67]) имеет длину 3 элемента и содержит байты, представляющие ABC; в 2.6 bytes([65, 66, 67]) возвращает 12-байтовую строку, представляющую str() списка.

Основное использование bytes в 2.6 будет заключаться в написании тестов типа объекта, таких как isinstance(x, bytes). Это поможет конвертеру 2to3, который не может определить, содержит ли код 2.x строки, содержащие символы или 8-битные байты; Теперь вы можете использовать либо bytes, либо str, чтобы точно представлять ваше намерение, и полученный код также будет корректным в Python 3.0.

48
ответ дан nosklo 30 October 2014 в 11:43
поделиться

bytes объекты реально существуют только в Python 3.x. bytes является псевдонимом для str в Python 2.7. Он существует для написания переносимого кода между Python 2 и 3.

3
ответ дан Mark Tolonen 30 October 2014 в 11:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: