Python
Python 전역변수
Devwon99
2024. 1. 16. 14:30
변수는 선언된 영역에 따라 전역변수와 지역변수로 나뉜다.
전역변수
전역변수는 사용자 지정 함수 밖에서 정의된 변수이고 어디서든지 사용 가능하며 타 함수 내부에서도 참조할 수 있다.
numlist = [1, 2, 3, 4, 5]
def func():
total = 0
for i in numlist:
total += i
return total
total_numlist = func()
print(total_numlist)
위 코드는 numlist를 함수의 인자 값으로 받지 않았고 numlist를 함수 내부에서 선언하지 않았지만 함수에서 numlist를 사용할 수 있다. 이것이 가능한 이유는 함수 위에서 값을 정의했기 때문에 어디서든 사용할 수 있는 전역변수 이기 때문이다.
지역변수
지역변수는 사용자 지정 함수 내부의 변수이고 해당 함수 내에서만 이용이 가능하다.
numlist = [1, 2, 3, 4, 5]
def func():
total = 0
for i in numlist:
total += i
return total
total_numlist = func()
print(total)
위 코드는 리스트의 요소를 다 더해준 후 반환해주는 함수이다.
함수 내부의 total 변수는 함수 내부에서만 사용할 수 있는 지역변수 이기 때문에 출력시
NameError: name 'total' is not defined 오류가 발생하며 출력할 수 없다.
numlist = [1, 2, 3, 4, 5]
total = 0
def func():
for i in numlist:
total += i
return total
total_numlist = func()
print(total)
위 코드는 앞서 작성한 코드의 total 위치를 함수 외부로 변경한 코드이다.
UnboundLocalError: cannot access local variable 'total' where it is not associated with a value 오류가 발생하며 출력할 수 없다.
위 오류는 파이썬 외부에 선언한 변수를 함수 속에서 호출하고자 할때 나타나는 오류이다. 전역변수를 지역변수로 호출했기 때문에 발생한다.
numlist = [1, 2, 3, 4, 5]
total = 0
def func():
global total
for i in numlist:
total += i
return total
total_numlist = func()
print(total)
함수 내부에서 전역 변수를 호출하여 변수를 선언하고 사용하고 싶을때는 global 키워드를 사용하여 해결할 수 있다.