파이썬 '버퍼' 유형은 무엇을 위한 것입니까?
있습니다.buffer
파이썬으로 입력합니다만, 어떻게 사용할 수 있습니까?
에 대한 Python 설명서의 설명은 다음과 같습니다.
buffer(object[, offset[, size]])
object 인수는 버퍼 호출 인터페이스(예: 문자열, 배열 및 버퍼)를 지원하는 개체여야 합니다.개체 인수를 참조하는 새 버퍼 개체가 만들어집니다.버퍼 개체는 개체의 시작 부분(또는 지정된 간격띄우기 부분)의 조각이 됩니다.슬라이스가 개체의 끝까지 확장됩니다(또는 size 인수로 지정된 길이).
사용 예:
>>> 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'
이 기능은 데이터에 둘 이상의 보기를 사용하고 메모리에 여러 개의 복사본을 저장하거나 저장할 수 없는 경우에 매우 유용합니다.
Python 2.7에서 사용할 수 있지만 Python 3에서 더 나은 이름으로 대체되었습니다.
또한 C API에 파고들지 않고는 자신의 객체에 대한 버퍼 인터페이스를 구현할 수 없습니다. 즉, 순수 파이썬에서는 구현할 수 없습니다.
버퍼는 예를 들어 파이썬을 네이티브 라이브러리에 인터페이스할 때 유용하다고 생각합니다(Guido van Rossum은 설명합니다).buffer
이 메일링 리스트 게시물에서).
예를 들어, NumPy는 효율적인 데이터 저장을 위해 버퍼를 사용하는 것으로 보입니다.
import numpy
a = numpy.ndarray(1000000)
그a.data
is a:
<read-write buffer for 0x1d7b410, size 8000000, offset 0 at 0x1e353b0>
언급URL : https://stackoverflow.com/questions/3422685/what-is-the-python-buffer-type-for
'programing' 카테고리의 다른 글
Mac에 R 설치 중 - 경고 메시지:"C"를 사용하여 LC_CTYPE을 설정하지 못했습니다. (0) | 2023.07.19 |
---|---|
어떻게 하면 Pyflakes가 진술을 무시하게 할 수 있습니까? (0) | 2023.07.19 |
가져오기 오류: libSM.so .6: 공유 개체 파일을 열 수 없습니다.해당 파일 또는 디렉터리가 없습니다. (0) | 2023.07.19 |
연결 풀을 안전하게 래핑 (0) | 2023.07.19 |
Visual Studio 코드: 컴파일 형식 스크립트 모듈 (0) | 2023.07.19 |