Форум сайта python.su
odnochlenв срезе может быть и ноль элементов
В общем, слайс всегда bytes, даже если он из одного элемента
odnochlenпричём тут Java ?
Такой вот привет из явы с byte и byte{}.
Офлайн
odnochlenГм, то что речь шла о тройке - это я понял. Просто в двойке ваш пример работает и “зачем так сделали” я понял как вопрос относительно “изменений” 2.x => 3.x
В моем примере речь шла о тройке. Наверно, надо было это написать, хотя тройка тут считается практически дефолт питоном.
Офлайн
py.user.nextМожет. И он все равно будет bytes.
в срезе может быть и ноль элементов
Офлайн
odnochlenони привели их в порядок, сделав из двух типов строк один, так же, как из range() и xrange() сделали один незатратный range()
что элементы в юникоде и байтах в тройке стали различаться
>>> range(10000000000) Traceback (most recent call last): File "<stdin>", line 1, in <module> OverflowError: range() result has too many items >>>
Офлайн
Это тут вообще причем?
С range() и co правильно, незачем иметь 2 функции, одна из которых возващает список, а другая - (ит|ген)ератор, когда есть list().
Офлайн
odnochlenэто всё - очистка второго питона от лишних конструкций
Это тут вообще причем?
Офлайн
А где тут очистка, если в действительности происходит усложнение: в юникоде элемент имеет тот же тип, что он сам и срез, а в байтах - нет?
py.user.nextВ яве byte{} (парсер-лох) имеет то же поведение.
причём тут Java ?
Офлайн
odnochlenГм, а где вы видели именно байты в двойке? Там было:
А где тут очистка, если в действительности происходит усложнение: в юникоде элемент имеет тот же тип, что он сам и срез, а в байтах - нет?
object
| \
int \
basestring
| \
str(8bit) unicode(code points)
object
/ | \
| | \________
int | \
| \
str(code points) byte
Отредактировано EBFE (Июль 25, 2012 22:14:10)
Офлайн
EBFEОни там были синонимом строки. Я просто выбирал названия так, чтобы не путать.
Гм, а где вы видели именно байты в двойке? Там было:
EBFEБайтом? Или таки списком?
Или наоборот: пусть элемент в byte будет тоже списком:
Офлайн
odnochlenВ принципе, для примера без разницы.
Байтом? Или таки списком?
>>> type(b'x') <class bytes> >>> type(b'x'[0]) <class bytes>
Отредактировано EBFE (Июль 26, 2012 02:12:58)
Офлайн