SORU
6 AĞUSTOS 2010, Cuma


Python türü için tampon nedir?

Python buffer Bir tür var, ama nasıl kullanabilirim bilmiyorum.

Python doc açıklama:

buffer(object[, offset[, size]])

Nesne değişkeni tampon arayüzü (dizeleri, diziler ve tamponlar gibi) aramayı destekleyen bir nesne olması gerekir. Yeni tampon nesnesi tartışma yarattı. Tampon nesnesi başından bir dilim (veya belirtilen uzaklık. Dilim nesne (ya da bir uzunluk boyutu bağımsız değişken tarafından verilmiş olacak) sonuna kadar devam edecek.

CEVAP
6 AĞUSTOS 2010, Cuma


Ö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 tampon alt dize, uzunluk pozisyonu ile başlayan 6 5, ve ekstra depolama alanı almaz - bu dize bir dilim başvuruyor.

Bu kısa dizeleri için çok yararlı değil, ama büyük miktarda veri kullanırken gerekli olabilir. Bu örnek, bir değişken bytearray kullanır:

>>> 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'

Bu verileri birden fazla görünüm elde etmek istiyorsanız çok yararlı olabilir, bilmek de istemiyorum (ya da yok) bellekte birden fazla kopyasını tutun.

buffer daha iyi değiştirilmiştir NOT 3, kullanabilirsiniz olsa da Python 2.7 Python memoryview adında.

C API derinliklerine inmek olmadan kendi nesneleri için bir tampon arabirimi uygulayabilirsiniz unutmayın, yani saf Python ile bunu yapamazsın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Liam Underwood

    Liam Underwo

    19 Mayıs 2009
  • Neil Cicierega

    Neil Ciciere

    22 Mart 2006
  • THELIFEOFPRICE

    THELIFEOFPRI

    16 Mart 2011