본문 바로가기
파이썬/파이썬기본문법

파이썬 범위(Scope)

by flycoding 2023. 11. 18.
반응형

생성된 영역 내부에서만 변수를 사용할 수 있다. 이를 범위(scope) 라고 한다.

 

지역 범위(Local Scope)

함수 내부에서 생성된 변수는 해당 함수의 로컬 범위에 속하며, 해당 함수 내부에서만 사용할 수 있다.

함수 내부에 생성된 변수는 해당 함수 내부에서 사용할 수 있다:

def myfunc():
  x = 100
  print("x in myfunc() : ", x)

myfunc()

위의 코드를 실행하면 아래 그림과 같다.

파이썬 지역 범위(local scope) 함수 내 활용 예제

 

파이썬 함수 내 함수 범위

위의 예제에서 설명한 것처럼 변수 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 키워드를 사용한다.

함수 내부의 전역 변수 값을 변경하려면 global 키워드를 사용하여 변수를 참조한다:

x = 300

print("x : ", x)

def myfunc():
  global x
  x = 200
  print("myfunc() x : ", x)

myfunc()

print("x : ", x)

위의 코드를 실행하면 아래 그림과 같다.

파이썬 global 변수 활용 예제

 

지금까지 파이썬 변수의 범위(scope)에 대해서 살펴보았다.

변수의 범위는 지역, 글로벌 등의 범위를 잘 활용하여 사용해야 한다.

꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.

모두 화이팅입니다.!!!

반응형

댓글