본문 바로가기
인공지능/파이썬 기초

변수의 범위

by hyunji00pj 2024. 9. 30.

KDT_4기 파이썬 기초 0926(3)

2024.09.26 수업 내용 복습일기 세번째

 

변수의 범위에 대해 알아보자 

1. 스코프(scope)

파이썬에서 변수의 범위(scope)는 해당 변수가 프로그램 내에서 참조되고 변경될 수 있는 영역을 의미합니다.

 

1-1. 지역변수(Local)

지역변수는 변수가 함수 내에서 정의될 때 해당 함수 내부를 의미합니다.

 

def local_func():
  local_var = '로컬변수'
  print(local_var)
local_func()

# print(local_var)# NameError: name 'local_var' is not defined
#함수안의 변수(로컬변수)는 함수가 끝나면 같이 끝남

1-2. Enclosing(둘러싼 범위)

Enclosing scope는 내부 함수에서 외부 함수의 변수를 참조할 때 해당 외부 함수 범위를 의미합니다.

 

def outer_func():
  enclosing_var = '둘러싼 범위 변수'
  def inner_func():
    print(enclosing_var)
  inner_func()

#상위 변수에서는 안의 변수를 쓸 수 있다

outer_func()

1-3. 전역 범위(Global)

Global scope는 변수가 스크립트의 최상위 수준에서 정의될 때 전체 스크립트 파일 내에서 해당 변수를 의미합니다.

globar_var = '글로벌 변수'

def test_func():
  print(globar_var)
  
test_func()

global_var = 10 #전역변수

def test_func():
  global_var = 20 #전역 변수의 값을 수정
  print(global_var)

test_func() #지역변수
print(global_var) #전역변수는 바뀌지 않음

global_var = 10 #전역변수

def test_func():
  global global_var
  global_var = 20 #전역 변수의 값을 수정
  print(global_var)

test_func()
print(global_var)

1-4. 내장 범위(Built-in)

Built-in scope는 파이썬의 내장 함수와 모듈들이 속하는 범위입니다. 예를 들어, print(), len() 같은 함수들이 여기에 해당됩니다.

2. 변수의 범위 탐색 순서

1. Local scope

2. Enclosing scope

3. Global scope

4. Built-in scope

따라서 지역 범위에 동일한 이름의 변수가 없으면 파이썬은 둘러싼 범위를 확인하고, 그 다음으로 전역 범위, 마지막으로 내장 범위를 확인합니다.

이렇게 변수의 범위를 이해하고 관리하는 것은 코드의 가독성과 유지 보수성을 높이고, 예기치 않은 오류를 방지하는 데 중요합니다.

'인공지능 > 파이썬 기초' 카테고리의 다른 글

객체지향과 클래스  (4) 2024.10.01
콜백함수와 람다함수  (0) 2024.09.30
사용자 정의 함수 (feat.None)  (0) 2024.09.30
컬렉션과 반복문 컴프리헨션  (0) 2024.09.29
제어문-반복문  (0) 2024.09.29