나의 공부 일기

Python) 지역변수, 전역변수 본문

파이썬/파이썬 정리

Python) 지역변수, 전역변수

곽병권 2023. 10. 15. 14:59
728x90

변수는 선언한 위치에 따라서 지역변수와 전역변수로 나뉩니다.

 

지역변수(Local variable)는 함수내에 생성된 변수 혹은 클래스 내에서 생성된 변수들을 말합니다.

a = 1     => 전역변수
def sum() :
    a = 10    => 지역변수
    print(a)

sum()

이걸 실행하면 결과는 10이 나옵니다.

 

함수를 사용한것으로 함수내의 있는 변수가 우선순위가 되기 때문입니다.

 

a = 1
def sum() :
    print(a)
a = 2
sum()

이거는 지역변수가 없이 전역변수가 두개가 있는 코드인데,

모든 코드는 위에서 내려오는 규칙을 가지고 있습니다.

 

그러므로 이 코드의 결과값은 맨 처음 a = 1 이라고 정의되었지만 

그 이후 함수가 호출되기 이전에 a = 2 라고 덮어씌웠기 때문에 이 결과값은 2가 나오게 됩니다.

 

 

만약 함수내에서 사용된 지역변수가 함수 밖에 전역변수의 공간에서 호출된다면 오류가 나게 됩니다.

 

예제입니다.

분명 b라는 변수가 있지만 정의되지 않았습니다. 라는 오류 문구가 나오면서 실행을 하게 되면 오류가 나게됩니다.

 

 

 

 

 

 

 

반대로 전역변수에서 사용되는 변수가 있을때에는 지역변수에서 변경도 가능합니다.

물론 상수인 튜플은 특정값 변경이 아닌 전부 한번에 교체 할 수 있습니다.

def change(tp):
    tp[0] = 2   # 오류
    tp = (2, 3, 4, 5)

tp = (1, 2, 3, 4)

change(tp)

 


 지역변수와 전역변수에 대해 알아보았습니다.

728x90

'파이썬 > 파이썬 정리' 카테고리의 다른 글

Python) 람다함수(Lambda)  (0) 2023.10.15
Python) 재귀함수(Recursive Function)  (0) 2023.10.15
Python) 가변인자  (0) 2023.10.13
Python) 함수(def)  (0) 2023.10.13
Python) break, continue  (0) 2023.10.13