카테고리 없음
파이썬 -UnboundLocalError: local variable 'len' referenced before assignment, len() 함수 에러
드라이빙 인사이트
2019. 12. 12. 23:16
반응형
파이썬으로 프로그래밍을 하다가 가끔씩 다음과 같은 에러를 만난다.
UnboundLocalError: local variable 'len' referenced before assignment
len이라는 이름의 변수를 할당하기전에 사용했다는 에러 메시지다. 이 에러를 발생시킨 코드는 다음과 같다.
def func1(s):
cs = set(s)
for i in range(len(cs)):
if False:
len = 0
print(i)
str = "ABCDDD"
func1(str)
문제의 원인은 함수 내부에서 len이라는 변수에 값을 할당해서 사용했기 때문이다. C 언어나 Java의 경우 변수 이름으로 Reserved Word를 사용할 경우 변수 할당이 안되고 컴파일 에러가 발생한다. 하지만 파이썬은 Reserved Word도 변수 이름으로 사용할 수 있다.
신기한 점은 if False: 구문으로 실행되지 않게 처리한 부분에서 len 이라는 이름을 사용했음에도 문제가 발생했다는 점이다.
이런 에러를 만났을 경우 len이라는 이름 대신 length 같은 풀 네임을 사용해서 오류를 예방하도록 하자.
반응형