[파이썬] 리스트 객체 오류: AttributeError: 'NoneType' object has no attribute '***'

2023. 5. 24. 10:04잡담

[파이썬] 리스트 객체 오류: AttributeError: 'NoneType' object has no attribute '***'

tmp_list = [1,2,3,4,5]
tmp_list2 = tmp_list.append(6)

다음의 tmp_list라는 이름의 리스트 객체가 존재한다.

해당 tmp_list 리스트 변수 맨 뒤에 6 숫자를 집어넣고 싶어서 append 메소드를 사용했다.

그리고 해당 새 리스트를 tmp_list2에 할당하였다.

 

tmp_list2.remove(4)

그러다가 tmp_list2 리스트 데이터에서 4를 제거하고 싶어서 리스트 객체의 메소드 중 하나인 "remove"를 이용했다.

이용...하려고 했는데...

 

Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    tmp_list2.remove(4)
AttributeError: 'NoneType' object has no attribute 'remove'

 

이런 오류가 뜬다.

append 메소드 잘 사용한 것 같은데 왜 오류가 뜨지...?

 

tmp_list2가 "None" 타입이어서 그렇다...

너무나 쉽지만 정신줄을 놓고 코딩하다 보면 놓치기 쉬운 오류 중 하나다.

list.append() 메소드는 return 값이 None이다.

굳이 변수 할당할 것 없이 원래 리스트에 append 메소드를 사용하면 된다...

tmp_list.append(7)

만약 여기에 새 변수를 할당하면 None 값을 반환하고, 이것을 새 변수에 저장하게 되는 것이다.

 

코딩하다보면 은근 자잘한 실수들을 정말 많이 한다.

힝힝...