एक उदाहरण का उपयोग:
>>> s = 'Hello world'
>>> t = buffer(s, 6, 5)
>>> t
<read-only buffer for 0x10064a4b0, size 5, offset 6 at 0x100634ab0>
>>> print t
world
इस मामले में बफ़र एक उप-स्ट्रिंग है, जिसकी लंबाई 5 की स्थिति 6 से शुरू होती है, और यह अतिरिक्त भंडारण स्थान नहीं लेता है - यह स्ट्रिंग के एक स्लाइस को संदर्भित करता है।
यह इस तरह के छोटे तारों के लिए बहुत उपयोगी नहीं है, लेकिन बड़ी मात्रा में डेटा का उपयोग करते समय यह आवश्यक हो सकता है। यह उदाहरण एक परिवर्तनशील का उपयोग करता है 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'
यह बहुत उपयोगी हो सकता है यदि आप डेटा पर एक से अधिक दृश्य रखना चाहते हैं और मेमोरी में कई प्रतियाँ नहीं (या नहीं) कर सकते हैं।
ध्यान दें कि पायथन 3 में bufferबेहतर नाम से प्रतिस्थापित किया गया है memoryview, हालांकि आप पायथन 2.7 में भी उपयोग कर सकते हैं।
यह भी ध्यान दें कि आप C API में बिना डिलिट किए अपनी खुद की वस्तुओं के लिए एक बफ़र इंटरफ़ेस लागू नहीं कर सकते, अर्थात आप इसे शुद्ध पायथन में नहीं कर सकते।
s[6:11]अतिरिक्त संग्रहण स्थान नहीं मिलता है, क्या मैं गलत हूं?