본문 바로가기
어플왕의 파이썬 독학일기

[파이썬 코드] scope란 무엇일까? 로컬 변수와 글로벌 변수. # 글로벌 변수와 로컬 변수가 함께 쓰일 때

by 엠트리 2021. 1. 29.

Scope란 무엇일까?

scope는 변수가 적용되는 범위를 뜻합니다.

적용되는 범위에 따라 로컬 변수와 글로벌 변수로 나뉩니다.

 

그러면 두 변수는 어떤 차이가 있을까요?

 

# 로컬변수

def test():
    x = 3
    print(x)
    
test()
print(x)

3
Error

test함수는 x를 출력하는 함수입니다.

x는 3 이기에 test() 는 3이 출력됩니다.

 

print(x)는 x를 출력하는 함수입니다.

그러면 3이 출력되어야겠죠? 하지만 에러가 납니다.

 

왜 그럴까요?

 

여기서 x 변수는 test 함수 내의 변수 입니다.

이런 변수를 로컬 변수라고 합니다.

 

함수 내에서만 적용되는 로컬변수 이기에 print(x)는 x값이 정해지지 않아 에러가 납니다.

함수 내에서만 적용 되기에 로컬(지역)변수 입니다. 

 

# 글로벌 변수

x = 2

def test2():
    print(x)
    
test2()
print(x)

2
2

x를 함수 내에서가 아닌 함수 밖에서 정의했습니다.

이런 변수를 글로벌 변수라고 합니다. 

 

글로벌 변수는 로컬변수와 달리 모든 프로그램 코드에 적용됩니다.

따라서 test2() 함수내에서 x 값을 정하지 않았지만 글로벌 변수가 적용되어

2가 출력됩니다.

 

# 글로벌 변수와 로컬 변수가 함께 쓰일 때

x = 2

def test3():
    x = 5
    print(x)
    
test3()
print(x)

5
2

test3() 함수는 함수 내의 로컬변수 5에 의해 5가 출력됩니다.

print(x) 는 로컬변수가 아닌 글로벌 변수인 2가 적용 되어 2가 출력됩니다.

 

 

댓글