Приклад використання:
>>> s = 'Hello world'
>>> t = buffer(s, 6, 5)
>>> t
<read-only buffer for 0x10064a4b0, size 5, offset 6 at 0x100634ab0>
>>> print t
world
Буфер в цьому випадку є підрядком, починаючи з позиції 6 довжиною 5, і він не займає додаткового місця для зберігання - він посилається на фрагмент рядка.
Це не дуже корисно для таких коротких рядків, але це може знадобитися при використанні великої кількості даних. У цьому прикладі використовується мутація bytearray:
>>> s = bytearray(1000000) # a million zeroed bytes
>>> t = buffer(s, 1) # slice cuts off the first byte
>>> s[1] = 5 # set the second element in s
>>> t[0] # which is now also the first element in t!
'\x05'
Це може бути дуже корисно, якщо ви хочете мати кілька даних на даних і не хочете (або не можете) зберігати кілька копій у пам'яті.
Зауважте, що bufferйого замінено на краще, назване memoryviewв Python 3, хоча ви можете використовувати або в Python 2.7.
Зауважте також, що ви не можете реалізувати інтерфейс буфера для власних об'єктів, не заглиблюючись в API C, тобто ви не можете це зробити в чистому Python.
s[6:11]також не займає зайвого місця для зберігання, я помиляюся?