생성된 영역 내부에서만 변수를 사용할 수 있다. 이를 범위(scope) 라고 한다.
지역 범위(Local Scope)
함수 내부에서 생성된 변수는 해당 함수의 로컬 범위에 속하며, 해당 함수 내부에서만 사용할 수 있다.
함수 내부에 생성된 변수는 해당 함수 내부에서 사용할 수 있다:
def myfunc(): x = 100 print("x in myfunc() : ", x) myfunc() |
위의 코드를 실행하면 아래 그림과 같다.
파이썬 함수 내 함수 범위
위의 예제에서 설명한 것처럼 변수 x는 함수 외부에서는 사용할 수 없지만 함수 내부의 모든 함수에서는 사용할 수 있다:
로컬 변수는 해당 함수 내의 함수에서 액세스할 수 있다:
def myfunc(): x = 300 def myinnerfunc(): print("x in myinnerfunc() ", x) myinnerfunc() myfunc() |
변수 x는 myfunc()함수에서 정의되어 300값이 저장되었고, myinnerfunc()함수는 myfunc()함수 내에 정의되어 있으며 변수 x는 myfunc()에서 정의한 변수 x이다.
위의 코드를 실행하면 아래 그림과 같다.
파이썬 글로벌 범위(Global scope)
파이썬 코드의 본체에 생성된 변수는 전역 변수로 전역 범위에 속한다.
전역 변수는 전역 및 지역 범위 내에서 사용할 수 있다.
함수 외부에서 생성된 변수는 전역적이며 누구나 사용할 수 있다:
x = 100 def myfunc(): print("x in myfunc() : ", x) myfunc() print(x) |
위의 코드를 실행하면 아래 그림과 같다.
파이썬 변수 이름
함수 내부와 외부의 변수 이름이 동일한 경우 Python은 두 개의 개별 변수로 처리한다. 하나는 전역 범위(함수 외부)에서 사용할 수 있고 다른 하나는 로컬 범위(함수 내부)에서 사용할 수 있다:
함수는 로컬 x를 인쇄하고 코드는 글로벌 x를 인쇄한다:
x = 100 def myfunc(): x = 10 print("x in myfunc() : ", x) myfunc() print("global x : ", x) |
위의 코드를 실행하면 아래 그림과 같다.
파이썬 global
글로벌 변수를 생성해야 하지만 로컬 범위 내에서 고착된 경우 global 키워드를 사용할 수 있다.
global 키워드는 변수를 만든다.
global 키워드를 사용하는 경우 변수는 전역 범위에 속한다:
def myfunc(): global x x = 300 myfunc() print("global x : ", x) |
위의 코드를 실행하면 아래 그림과 같다.
함수 내부의 전역 변수를 변경하려면 global 키워드를 사용한다.
함수 내부의 전역 변수 값을 변경하려면 global 키워드를 사용하여 변수를 참조한다:
x = 300 print("x : ", x) def myfunc(): global x x = 200 print("myfunc() x : ", x) myfunc() print("x : ", x) |
위의 코드를 실행하면 아래 그림과 같다.
지금까지 파이썬 변수의 범위(scope)에 대해서 살펴보았다.
변수의 범위는 지역, 글로벌 등의 범위를 잘 활용하여 사용해야 한다.
꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.
모두 화이팅입니다.!!!
'파이썬 > 파이썬기본문법' 카테고리의 다른 글
파이썬 datetime (1) | 2023.11.20 |
---|---|
파이썬 모듈(modules) (0) | 2023.11.19 |
파이썬 다형성(python polymorphism) (0) | 2023.11.17 |
파이썬 이터레이터(iterators) (1) | 2023.11.16 |
파이썬 클래스 상속(python class inheritance) (1) | 2023.11.15 |
댓글