[python] 함수의 스코프와 지역 변수

파이썬에서는 함수 내부에서 정의된 변수의 스코프와 사용 방법이 중요합니다. 이러한 스코프 규칙을 이해하고 있으면 코드를 더욱 효율적으로 작성할 수 있습니다. 이번 글에서는 파이썬에서 함수의 스코프와 지역 변수에 대해 자세히 살펴보겠습니다.

스코프란?

스코프(scope)는 변수가 유효한 범위를 나타냅니다. 파이썬에서는 함수 내부와 외부에 따라 스코프가 결정됩니다.

전역 변수와 지역 변수

전역 변수(global variable)는 함수 바깥에서 정의된 변수를 말하며, 스크립트 전체에서 접근할 수 있습니다. 반면에 함수 내에서 정의된 변수는 지역 변수(local variable)로 함수 내부에서만 사용할 수 있습니다.

x = 10  # 전역 변수

def my_function():
    x = 20  # 지역 변수
    print(x)

my_function()  # 출력: 20
print(x)  # 출력: 10

global 키워드

전역 변수를 함수 내부에서 사용하기 위해서는 global 키워드를 사용할 수 있습니다.

x = 10  # 전역 변수

def my_function():
    global x
    x = 20  # 전역 변수 x의 값을 변경
    print(x)

my_function()  # 출력: 20
print(x)  # 출력: 20

nonlocal 키워드

nonlocal 키워드는 중첩된 함수에서 상위 함수의 변수를 사용하기 위해 활용됩니다.

def outer_function():
    y = 100  # 외부 함수의 지역 변수

    def inner_function():
        nonlocal y
        y = 200  # 외부 함수의 지역 변수 y의 값을 변경
        print(y)

    inner_function()  # 출력: 200
    print(y)  # 출력: 200

outer_function()

함수를 작성할 때 변수의 스코프를 고려하는 것은 중요합니다. 올바른 스코프 규칙을 적용하여 변수를 사용하면 코드를 더욱 명확하고 이해하기 쉽게 만들 수 있습니다.

이상으로 파이썬 함수의 스코프와 지역 변수에 대해 알아보았습니다. 변수의 스코프를 잘 이해하고 적절하게 활용하여 코드를 작성해 보시기 바랍니다.