[파이썬] 함수 내부와 외부의 변수 접근 방법과 예제

파이썬에서 함수 내부와 외부의 변수에 접근하는 방법은 중요한 개념 중 하나입니다. 함수 내부에서 외부 변수에 접근하는 경우, 그리고 함수 외부에서 함수 내부의 변수에 접근하는 경우에 대한 예제를 제공하겠습니다.

1. 함수 내부에서 외부 변수에 접근하기:

함수 내부에서 외부 변수에 접근하려면 global 또는 nonlocal 키워드를 사용합니다. global 키워드는 전역 변수에 접근할 때 사용되며, nonlocal 키워드는 중첩 함수에서 외부 함수의 지역 변수에 접근할 때 사용됩니다.

x = 10  # 전역 변수

def access_global_variable():
    global x  # 전역 변수 x에 접근
    x += 5

access_global_variable()
print(x)  # 출력: 15

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

    def access_outer_variable():
        nonlocal y  # 외부 함수의 지역 변수 y에 접근
        y += 5

    access_outer_variable()
    print(y)

outer_function()  # 출력: 25

2. 함수 외부에서 함수 내부의 변수에 접근하기:

함수 내부의 변수를 외부에서 접근하려면 해당 변수를 반환하거나 함수의 리턴 값을 통해 접근할 수 있습니다.

def outer_function():
    z = 30  # 함수 내부의 지역 변수

    def access_inner_variable():
        return z  # 함수 내부 변수 z 반환

    return access_inner_variable

inner_function = outer_function()
result = inner_function()
print(result)  # 출력: 30

outer_function 내부의 access_inner_variable 함수를 반환하고, 이 함수를 inner_function에 할당하여 외부에서 result를 통해 내부 변수에 접근합니다.

변수의 접근은 스코프(Scope)와 관련이 있으며, 올바르게 사용해야 합니다. 전역 변수와 지역 변수, 중첩 함수에서 외부 함수의 변수에 접근하는 방법을 이해하면 코드를 더 효율적으로 작성할 수 있습니다.