
114
1
부
데이터 구조체
>>> m3[1,1] = 33 ❻
>>> octets ❼
array(‘B’, [0, 1, 2, 33, 22, 5])
❶ 바이트 여섯 개의 배열을 생성한다 (자료형 코드
‘
B
’
).
❷ 이 배열로
memoryview
를 생성하고 리스트로 익스포트
export
한다.
❸ 앞에서 만든 뷰에서
2
행
3
열의
memoryview
를 새로 만든다.
❹
3
행
2
열의
memoryview
를 하나 더 만든다.
❺
m2
의
1
행
1
열 바이트를
22
로 덮어쓴다.
❻
m3
의
1
행
1
열 바이트를
33
으로 덮어쓴다.
❼ 원래 배열을 출력해 메모리가
octets
,
m1
,
m2
,
m3
에 의해 공유됨을 보여 준다.
memoryview
의 강력한 기능은 메모리를 조작할 때 사용할 수도 있다. [예제
2
-
21
]은
16
비트
정수 배열에서 바이트 하나를 변경하는 방법을 보여 준다.
예제
2-21
바이트 하나를 조작해
16
비트 정수 배열의 값 변경하기
>>> numbers = array.array(‘h’, [-2, -1, 0, 1, 2])
>>> memv = memoryview(numbers) ❶
>>> len(memv)
5
>>> memv[0] ❷
-2
>>> memv_oct = memv.cast(‘B’) ❸
>>> memv_oct.tolist() ❹
[254, 255, 255, 255, 0, 0, 1, ...