|
Модераторы: Daevaorn |
|
setoy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 27.3.2006 Репутация: нет Всего: нет |
Ну я не могу понят какое применение может бит у эта функция и буфер обект... Можно кто-то пояснит? Спасибо...
|
|||
|
||||
SAnty |
|
|||
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 16.2.2006 Репутация: 3 Всего: 5 |
Функция buffer(object [, offset[, size]])
Создаёт объект buffer. object должен быть одним из объектов которые поддерживаются в buffer (это string, unicode,array,buffer). А также array. Объекты buffer позволяют обращатся к разными типами (структурами), как с массивом байт. например функция str() преобразует buffer в строку символов. |
|||
|
||||
setoy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 27.3.2006 Репутация: нет Всего: нет |
OK, это понятно. Но какая разница буду я ползуя str(something) или buffer(something)__str__().
"Объекты buffer позволяют обращатся к разными типами (структурами), как с массивом байт." Это как раз то что надо, но мне нужно точно с string обращатся как с массивом байт. Ну, скажем, нужно въчислит checksum of string, без преобразоват его символ за символ с ord ()(потому что это медленно). Это возможно ? Спасибо. |
|||
|
||||
SAnty |
|
|||
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 16.2.2006 Репутация: 3 Всего: 5 |
вот примеры работы с типом буффер
print 'Buffers' try: buffer('asdf', -1) except ValueError: pass else: raise TestFailed, "buffer('asdf', -1) should raise ValueError" try: buffer(None) except TypeError: pass else: raise TestFailed, "buffer(None) should raise TypeError" a = buffer('asdf') hash(a) b = a * 5 if a == b: raise TestFailed, 'buffers should not be equal' if str(b) != ('asdf' * 5): raise TestFailed, 'repeated buffer has wrong content' if str(a * 0) != '': raise TestFailed, 'repeated buffer zero times has wrong content' if str(a + buffer('def')) != 'asdfdef': raise TestFailed, 'concatenation of buffers yields wrong content' if str(buffer(a)) != 'asdf': raise TestFailed, 'composing buffers failed' if str(buffer(a, 2)) != 'df': raise TestFailed, 'specifying buffer offset failed' if str(buffer(a, 0, 2)) != 'as': raise TestFailed, 'specifying buffer size failed' if str(buffer(a, 1, 2)) != 'sd': raise TestFailed, 'specifying buffer offset and size failed' try: buffer(buffer('asdf', 1), -1) except ValueError: pass else: raise TestFailed, "buffer(buffer('asdf', 1), -1) should raise ValueError" if str(buffer(buffer('asdf', 0, 2), 0)) != 'as': raise TestFailed, 'composing length-specified buffer failed' if str(buffer(buffer('asdf', 0, 2), 0, 5000)) != 'as': raise TestFailed, 'composing length-specified buffer failed' if str(buffer(buffer('asdf', 0, 2), 0, -1)) != 'as': raise TestFailed, 'composing length-specified buffer failed' if str(buffer(buffer('asdf', 0, 2), 1, 2)) != 's': raise TestFailed, 'composing length-specified buffer failed' если не можете разобраться возьмите зайдите в каталог python24\lib\test и сделайте поиск по buffer/ Вам выдаст примеры работы с array and string. удачи. |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |