Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что делает buffer()? 
:(
    Опции темы
setoy
Дата 23.5.2006, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 27.3.2006

Репутация: нет
Всего: нет



Ну я не могу понят какое применение может бит у эта функция и буфер обект... Можно кто-то пояснит? Спасибо...

 
PM MAIL   Вверх
SAnty
Дата 23.5.2006, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 16.2.2006

Репутация: 3
Всего: 5



Функция buffer(object [, offset[, size]])
Создаёт объект buffer. 
object должен быть одним из объектов которые поддерживаются в buffer (это string, unicode,array,buffer). А также array.

Объекты buffer позволяют обращатся к разными типами (структурами), как с массивом байт.

например функция str() преобразует buffer в строку символов.
 
PM MAIL WWW   Вверх
setoy
Дата 23.5.2006, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 27.3.2006

Репутация: нет
Всего: нет



OK, это понятно. Но какая разница буду я ползуя str(something) или  buffer(something)__str__().

 smile 

"Объекты buffer позволяют обращатся к разными типами (структурами), как с массивом байт."

Это как раз то что надо, но мне нужно точно с string обращатся как с массивом байт. Ну, скажем, нужно въчислит checksum of string, без преобразоват его символ за символ с ord ()(потому что это медленно).  Это возможно ? Спасибо. 
PM MAIL   Вверх
SAnty
Дата 23.5.2006, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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.

удачи.

 
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1064 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.