파이썬의 내장 모듈(ex. collections
, heapq
)은 C로 작성되어 그 속도가 파이썬보다 훨씬 빠릅니다.
getattr
d = deque
getattr(d, "append")(1)
위 코드는 d.append(1)
과 완벽하게 동일한 코드입니다.
일반적으로는 굳이 귀찮게 getattr
을 쓸 필요가 없이 .
을 사용하는게 더 낫습니다.
getattr의 특징은 두 번째 인자를 str 자료형으로 받는다는 것인데 다음 예시를 확인해주세요.
HackerRank, Collections.deque()
첫 줄은 후에 나올 명령의 개수입니다.
두번째 줄부터는 어떤 명령을 수행할 지를 나타냅니다.
Input :
6
append 1
append 2
append 3
appendleft 4
pop
popleft
다음과 같이 코드를 매우 간소화할 수 있습니다.
getattr을 사용하면서 if문으로 하나하나 수작업해야하는 수고를 덜었습니다.
from collections import deque
d = deque()
for _ in range(int(input())):
cmd, *args = input().split()
getattr(d, cmd)(*args)