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가 출력됩니다.
'어플왕의 파이썬 독학일기' 카테고리의 다른 글
| [파이썬 코드] #자료형을 파악해주는 type함수 (0) | 2021.01.28 |
|---|---|
| [파이썬 코드] #불린 Boolean (참과 거짓 판단하기), #and 연산, #or 연산, #not 연산 (0) | 2021.01.28 |
| [파이썬 코드] #문자열 포맷팅 .format, #포매팅 다른 방식 (f-string) (0) | 2021.01.28 |
| [파이썬 코드] #floor division 버림 나눗셈, #round 반올림 (0) | 2021.01.28 |
| [파이썬 독학] "나도코딩"님의 파이썬 코딩 무료 강의 공부 3일차 (문자열, 슬라이싱, 문자열 처리 함수, 문자열 포맷 (0) | 2021.01.25 |
댓글