Programming

; develop a program

Back-End/Python

[Python] Local(지역) 함수

Clloud_ 2022. 10. 5. 11:59
반응형

이번 포스팅에서는 파이썬의 Local(지역) 함수에 대하여 공부를 해보고자 한다.

 


Local(지역) 함수

로컬 함수는 함수 내에서 정의한 함수를 말한다.

 

함수 내부에서만 호출할 수 있다.

단 외부 함수가 local 함수를 반환하면 외부 함수를 호출한 곳에서 호출이 가능하다.

 

호출 결과를 리턴한 경우

def outer():
    num = 10
    
    def inner(num2):
        return num + num2

    return inner(20)
    
print(outer())		# 30

함수를 리턴한 경우

def outer():
    num = 10
    
    def inner(num2):
        return num + num2
        
    return inner
    
fn = outer()
print(fn(100))		# 110

 

 


클로저(Closure)

클로저는 Local 함수가 사용하는 외부 함수의 지역변수는 외부 함수가 종료되어도 Local 함수가 종료될 때까지 메모리에 유지되도록 하는 구조를 말한다.

 

 


Local(지역) 변수, Global(전역) 변수

지역변수는 함수나 메소드 안에 선언된 변수를 말한다.

호출 가능 범위: 선언된 함수/ 메소드 안에서만 사용 가능.

 

예제

변수(x, y)를 함수 안에 선언한다. → 지역변수 

함수가 실행되는 시점에 메모리는 loading 되고 함수 실행이 끝나면 메모리에서 제거된다.

def fun(x):
    y = 20
    print(x + y)

변수에 값을 대입하고 함수를 호출한다.

fun(10)		# 30

 

 

전역 변수는 함수/클래스 밖의 실행 영역에 선언된 변수를 말한다.

모든 함수에서 같이 사용할 수 있다.

 

예제

변수를 함수 밖에 선언한다. → 전역 변수 

g_v1 = 10
g_v2 = 20


def exam1():
    print(g_v1)
    print(g_v2)


def exam2():
    print(g_v1)
    print(g_v2)
    print(g_v1 + g_v2)

함수를 호출한다.

exam1()
exam2()
print(g_v1)

[실행결과]

10
20

10
20
30

10

 

전역 변수는 값이 변경되면 사용하는 여러 함수에 영향을 줄 수 있다.

g_v1 = 10000
exam1()
print("=============")
exam2()

[실행결과]

10000
20
=============
10000
20
10020

 


 

반응형

'Back-End > Python' 카테고리의 다른 글

[Python] 람다 방식(lambda)  (0) 2023.05.31
[Python] 데코레이터(Decorator)  (4) 2022.10.05
[Python] Generator(제너레이터)  (0) 2022.10.04
[Python] Iterator(반복자)  (0) 2022.10.04
[Python] 내장함수(Built-In Function)  (4) 2022.10.02