티스토리 뷰
카테고리 없음
파이썬 -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 같은 풀 네임을 사용해서 오류를 예방하도록 하자.
댓글
공지사항
- Total
- 66,462
- Today
- 26
- Yesterday
- 407
링크
TAG
- bash
- tls
- Jekyll
- Python
- 파이썬
- InterlliJ
- 리눅스
- 도커
- monitoring
- nf_conntrack
- Netfilter
- java
- 자바
- docker
- GitHub
- 하둡
- MacOS
- 깃허브
- hadoop
- 실리콘밸리
- maven
- okhttp
- linux
- 인텔리제이
- 지킬
- pyinstaller
- lsof
- pycharm
- hdfs
- 파이참