Python 복습 (11-1) : 함수 ( 지역변수와 전역변수)

STUDY_J·2024년 7월 16일

파이썬에서 변수의 스코프(scope)는 변수의 유효 범위를 의미한다.
함수 내에서 선언된 변수는 지역변수이고, 함수 외부에서 선언된 변수는 전역변수이다.

이에 대한 내용을 제대로 이해하기 위해 설명과 예시코드 및 결과에 대한 내용을 작성하며 복습하기

1) 기본 개념

전역변수 (Global Variable): 함수 외부에서 정의되며, 프로그램 전체에서 접근 가능함
지역변수 (Local Variable): 함수 내부에서 정의되며, 해당 함수 내에서만 유효함

x = 10  # 전역변수
y = 10

def example():
    y = 5  # 지역변수
    print(f"Inside the function, y: {y}")
    print(f"Inside the function, x: {x}")

example()
# 아래는 함수 외부의 변수 값 (전역변수) 출력
print(f"Outside the function, x: {x}")
print(f"Outside the function, y: {y}")

#Inside the function, y: 5
#Inside the function, x: 10
#Outside the function, x: 10
#Outside the function, y: 10

위의 예시에서 전역변수 x = 10, y = 10은 함수 내에서 사용이 될 수 있다.
하지만 함수내에 지역변수도 y라는 이름으로 5의 값을 갖고 있다.
이럴 경우에는 함수 내에서의 지역변수가 우선권을 갖는다고 생각하면 된다.

따라서 함수 내에서 x,y 값을 출력하라고 하면 x는 전역변수 값을, y는 지역변수 값을 출력한다

하지만 함수를 빠져나와 x와 y값을 출력하면, x와 y 모두 전역변수 값을 출력한다.

그러면 전역변수를 함수 내에서 사용하고 싶으면 어떻게 할까

2) 전역변수를 함수 내에서 변경하기 (global)

함수 내에서 전역변수를 변경하려면 global 키워드를 사용해야 한다
그렇지 않으면 함수는 전역변수와 같은 이름의 새로운 지역변수를 생성한다.

x = 10

def modify_global():
    global x
    x = 20
    print(f"Inside the function, x: {x}")

modify_global()
print(f"Outside the function, x: {x}")

# Inside the function, x: 20
# Outside the function, x: 20

함수 내에 global x를 선언하여 전역변수를 함수 내에서 변경할 수 있도록 하였다.
함수 내에서 global을 선언하고, x = 20으로 바꾸었으니 전역변수는 x = 10에서 x = 20으로 바뀌게 된다.

0개의 댓글