변수 범위

장승현·2023년 10월 30일

Python

목록 보기
4/5
post-thumbnail

용어

지역 변수 : 특정 구역(ex. 함수) 내에서 사용 가능한 변수
전역 변수 : 모든 구역에서 사용 가능한 변수

기본

list = [1, 2, 3]

def sum():
	sum_val = 0
    for num in list: # 함수 내부에서는 전역 변수 list에 접근 가능
    	sum_val += num
        
total_sum = sum()
print(total_sum) # 6
print(sum_val) # NameError: name 'sum_val' is not defined
# sum_val은 함수 내부에서 정의된 지역 변수이기 때문에 함수 외부에서 호출 시 NameError가 발생

심화

Case1

list = [1, 2, 3]
def edit():
    __list = list
    __list.append(4)

edit()
print(list) # 1, 2, 3, 4
# edit 함수에서 __list 변수만 수정했지만 list와 같은 메모리 주소를 참조하기 때문에 list 변수 또한 변경됨

Case2

list = [1, 2, 3]
def edit():
    __list = list
    __list = [4, 5, 6]

edit()
print(list) # [1, 2, 3]
# 위와 동일하지만 __list 변수를 재정의함으로써 list와 __list는 다른 주소값을 갖게 됨
profile
늦더라도 끝이 강한 내가 되자

0개의 댓글