마이크로파이썬 micropython 의 세계로 들어가고 있다. 점점..하다보니
bytearray를 새로 만드는 것은 정말 자료도 많이 있는데, 이미 만들어진 bytearray를 다시 리셋 시켜주는 코드를 찾기가 쉽지 않네.
물론 가장 쉽게 할 수 있는 방법은
for i in range(len(your_array)):
your_array[i] = 0
요거 더 잘하는 방법이 있을 것 같아서 찾아본 결과.
$ ./upython
MicroPython v1.8.1-39-gdb4addd on 2016-07-01; linux version
Use Ctrl-D to exit, Ctrl-E for paste mode
>>> a = bytearray(10)
>>> id(a)
139728051341376
>>> a[:] = b'\1' * len(a)
>>> id(a)
139728051341376
>>> a
bytearray(b'\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01')
>>> a[:] = b'\0' * len(a)
>>> a
bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
>>> id(a)
139728051341376
>>>
결국 0x00으로 리셋하고 싶다면
>> bytearray변수[:] = b'\x00' * len(bytearray변수)
이렇게 하라는 말씀
내부적으로 id 값을 찍어보면 주소 값이 안바뀌는 것으로 봐서 메모리 낭비는 없는 것 같다.
원본 글 위치는 여기
forum.micropython.org/viewtopic.php?t=2480
Jamin Djuang 님의 사진, 출처: Pexels
'IT > 파이썬' 카테고리의 다른 글
예외를 직접 발생시키기 - raise Exception (0) | 2021.04.16 |
---|---|
Windows 10 SDK 설치 - dll 오류 같은 것이 나면 (0) | 2021.04.15 |
파이썬 pyside2 IP address 입력 창 만들기 - PyQt5 QLineEdit (0) | 2021.03.19 |
파이썬 여러 widget 이 하나의 슬롯(callback/signal) 함수 사용하기 (0) | 2021.03.16 |
파이썬 변수 할당시 메모리 복사? 참조? copy deepcopy slicing (0) | 2021.03.10 |