Örnek bir kullanım:
>>> s = 'Hello world'
>>> t = buffer(s, 6, 5)
>>> t
<read-only buffer for 0x10064a4b0, size 5, offset 6 at 0x100634ab0>
>>> print t
world
Bu durumda arabellek, uzunluk 6 ile konum 6'dan başlayarak bir alt dizgidir ve fazladan depolama alanı gerektirmez - dizenin bir dilimine başvurur.
Bu, bunun gibi kısa dizeler için çok yararlı değildir, ancak büyük miktarda veri kullanılırken gerekli olabilir. Bu örnekte değiştirilebilir bir dosya kullanılmıştır 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'
Veriler üzerinde birden fazla görünüme sahip olmak istiyorsanız ve birden fazla kopyayı bellekte tutmak istemiyorsanız (veya yapamıyorsanız) bu çok yararlı olabilir.
Not bufferadında daha almıştır memoryviewPython 2.7 ya kullanabilirsiniz olsa Python 3'te.
Ayrıca, C API'sine girmeden kendi nesneleriniz için bir arabellek arabirimi uygulayamayacağınızı, yani saf Python'da yapamayacağınızı unutmayın.
s[6:11]da fazladan depolama alanı gerektirmiyor, yanılıyor muyum?