- 참고: stackoverflow.com/questions/1120927/which-is-better-in-python-del-or-delattr
foo라는 object에 bar라는 attribute가 있다고 했을 때, 이 attribute를 지우려면
del foo.bar
delattr(foo, "bar")
del을 쓸 수도, delattr를 쓸 수도 있습니다.
# del foo.bar
2 0 LOAD_FAST 0 (foo)
3 DELETE_ATTR 0 (bar)
# delattr(foo, "bar")
2 0 LOAD_GLOBAL 0 (delattr)
3 LOAD_FAST 0 (foo)
6 LOAD_CONST 1 ('bar')
9 CALL_FUNCTION 2
12 POP_TOP
바이트코드로 확인해봤을 때 del은 두개의 인스트럭션만 사용하는 반면 delattr은 5개의 인스트럭션을 사용한다네요
속도차이가 엄청 나는건 아니지만 del이 좀 더 빠릅니다
대신 delattr은 동적으로 attribute를 지울 수 있으니 상황에 맞게 쓰시면 되겠습니다.
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[Python] 같은 keys를 갖는 dict로 새로운 dict 계산해 만드는 법 (0) | 2021.04.20 |
---|---|
[Python] is, == 연산자 (0) | 2021.03.26 |
[Django] PyCharm으로 장고 커맨드 디버그하는 법 (0) | 2021.03.07 |
[Python] 파이썬 변수, 메소드명 언더스코어(_) 의미 (0) | 2021.03.06 |
[Django] 모델 필드 길이로 필터링하는 법 (0) | 2021.03.02 |