반응형
안녕하세요 한주현입니다.
오늘은 파이썬에서 흔히 볼 수 있는 오류인,
UnboundLocalError: local variable referenced before assignment
에 대하여 알아보겠습니다.
문제 상황
UnboundLocalError: local variable referenced before assignment
아래와 같은 파이썬 스크립트를 작성하고 실행을 시켜보니
1 2 3 4 5 6 7 | x = 10 def func(): x += 1 print(x) func() | cs |
UnboundLocalError: local variable 'x' referenced before assignment
라고 오류가 납니다..
1 2 3 4 5 6 | Traceback (most recent call last): File "unbound.py", line 7, in <module> func() File "unbound.py", line 4, in func x += 1 UnboundLocalError: local variable 'x' referenced before assignment | cs |
함수 밖에 있는 x를 전역 변수로 두고
함수 안에서 전역변수를 가져와 연산을 하면 될 것 같은데..
왜 오류가 났을까요?
해결 방법
UnboundLocalError: local variable 'x' referenced before assignment
1 2 3 4 5 6 7 8 | x = 10 def func(): global x x += 1 print(x) func() | cs |
전역 변수를 지역 범위 (local scope)에서 사용하고 싶으시면 지역 영역에서 global 표현을 사용합니다
이렇게 하면 지역 범위에서 전역 변수를 사용할 수 있게 됩니다.
참고 문헌
https://docs.python.org/3/reference/simple_stmts.html#the-global-statement
여러분들께 도움이 되셨으면 좋겠네요
그럼 다음 시간에 만나요!
반응형
댓글