프로그래밍/Python
[Python] del과 delattr의 차이점
vince joe
2021. 3. 25. 22:15
- 참고: 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를 지울 수 있으니 상황에 맞게 쓰시면 되겠습니다.
반응형