파이썬 관점 참조 이거만 기억해
본문
파이썬 할 때 괜히 값 바뀌어서 디버깅할 일 있음? 리스트 같은 mutable 객체 인자 넘기면 함수에서 값 바뀌는 거 자주 터짐😱 함수 선언할 때 def func(a_list): 이렇게 했는데, 함수 안에서 a_list.append(5) 쓰면 원본 리스트도 바뀜. 진짜 이거 모르고 코딩하다가 값 왜 꼬였는지 한참 찾았음.
그래서 기본값으로 리스트나 딕트 같은 거 주지 마라. def func(x=[]): 요런 거 진짜 조심해야 한다. 함수 여러 번 부르면 x값 공유돼서 난리 남. 안전하게 쓰고 싶으면 None으로 주고, 함수 안에서 if x is None: x = [] 이렇게 처리하면 됨. 실무에서 이거로 삽질 엄청 했던 사람들 많다... 기억해둬라!
그래서 기본값으로 리스트나 딕트 같은 거 주지 마라. def func(x=[]): 요런 거 진짜 조심해야 한다. 함수 여러 번 부르면 x값 공유돼서 난리 남. 안전하게 쓰고 싶으면 None으로 주고, 함수 안에서 if x is None: x = [] 이렇게 처리하면 됨. 실무에서 이거로 삽질 엄청 했던 사람들 많다... 기억해둬라!
좋아요2
이 글을 좋아요하셨습니다
등록된 댓글이 없습니다.