본문 바로가기
프로그램

[파이썬] 문제 : global 변수의 수정 에러

by 오디세이99 2022. 11. 20.
728x90
반응형

다음과 같이 global 변수를 지정한 후 함수에서 이 global 변수를 수정하게되면 에러가 발생 합니다.

global c
c = 5

def func():
    c += 1      # global 변수의 수정
    
print(c)
func()
print(c)

결과

5

---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
Input In [36], in <cell line: 8>()
      5     c += 1      # 
      7 print(c)
----> 8 func()
      9 print(c)

Input In [36], in func()
      4 def func():
----> 5     c += 1

UnboundLocalError: local variable 'c' referenced before assignment

 

다음과 같이 global 변수를 수정하는 함수에서 다시 한번 global 변수를 지정하고 수정하면 에러가 발생하지 않음.

global c
c = 5

def func():
    global c    # 1 차로 지정한 global 변수를 다시 global로 지정
    c += 1      # 
    
print(c)
func()
print(c)

결과

5
6
728x90
반응형

댓글