байты по сравнению с bytearray в Python 2.6 и 3

Мог Перечисление со справкой Атрибута Флагов, возможно? Посмотрите здесь:

, Что [Флаги] Перечисление Приписывает средний в C#?

20
задан Aaron Hall 4 August 2014 в 17:10
поделиться

3 ответа

В Python 2.6 байты - это просто псевдоним для str .
Этот «псевдотип» был введен для [частичной] подготовки программ [и программистов!] К преобразованию / совместимости с Python 3.0, где есть строгое различие семантики и использования для str (которые систематически являются Unicode) и байтов (которые являются массивами октетов, для хранения данных, но не текста)

Точно так же префикс b для строковых литералов неэффективен в версии 2.6, но это полезный маркер в программе, который явно указывает на намерение программиста иметь строку как строка данных, а не текстовая строка. Эта информация затем может быть использована конвертером 2to3 или аналогичными утилитами при переносе программы на Py3k.

Вы можете проверить этот вопрос SO для получения дополнительной информации.

26
ответ дан 29 November 2019 в 23:17
поделиться

Я не уверен, с какой версии, но байта на самом деле является строчкой , которую вы можете увидеть, если наберете тип (байты (b "привет")) -> .

bytearray - изменяемый массив байтов, один конструктор которого принимает строку.

3
ответ дан 29 November 2019 в 23:17
поделиться

Я пробовал это на Python 3.0.

В Python 3.0 был байтов итератор возвращает int s, а не строки, как Python 2.6:

for i in bytes(b"hi"):
    print(type(i))

Дает:

<class 'int'>
<class 'int'>

A bytearray итератор также возвращает класс 'int' s.

3
ответ дан 29 November 2019 в 23:17
поделиться
Другие вопросы по тегам:

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