본문 바로가기
programming/Python

파이썬 람다 함수의 함수 정의 사용 python lambda function

by 개코 - 개발과 코딩 2021. 10. 30.

파이썬 람다함수는 일반 함수와 함께 사용할 수 있다. 이들을 혼합하여 사용하면 자유도가 높은 함수가 만들어지지 않을까 싶다. 람다 함수의 편의성이 이런게 아닐까 싶다. 다른 프로그래밍 언어들도 람다 함수는 제공한다. 아마 코딩의 편의성을 위해 만들어지지 않을까 한다.

파이썬 람다 함수의 함수 정의 사용
python lambda function

파이썬 람다함수 또한 인수의 갯수는 동일해야 한다.

람다함수와 일반 함수를 혼용해서 사용할 때의 코드를 가만히 살펴보면 부모 자식 간의 데이터 형태를 가공할 때 사용하면 편하지 않을까 하는 생각이다.

물론, 반복문으로 처리해야 될 경우들도 생기겠지만, 함수를 유연하게 사용하는 것 또한 기술이다.

한번에 잘 만들어 질 수 없듯이 말이다.

람다 함수의 정의

람다함수를 일반함수와 사용할 때는 함수를 정의하는 방법으로 사용한다.

호출하는 부분은 함수를 변수로 정의하여 사용할 수 있다.

이 부분이 조금 생소할 수 있다.

유심히 1분만 보자.

규칙이 보이고 이해가 될 수 있다.

인수의 갯수를 2개 정도 넣고 사용법을 작성해 본다.

첫번째로 함수를 호출하는 부분의 인자값이 있고

두번째로 함수를 정의한 변수를 함수처럼 사용하며 인자값이 2개 들어간다.

#- 함수부분
def pythonFunction(parameter): #-{

    return lambda args1, args2 : args1 + args2 + parameter
    
#-}

#- 코드부분
vFunc = pythonFunction(100)
vFunc(200, 300)

일반 함수와 혼합 사용

위의 코드를 이용하여 실제 동작하는 코드를 만들어 본다.

큰 차이는 없다.

다만 인자값의 갯수와 함수를 변수로 선언하는 부분이 난해할 것이다.

최초 함수를 선언할 때와 변수로 정의하여 사용할 때의 인자값을 구분만 하면 된다.

print('----------')

#- 함수부분
def pythonFunction1(parameter): #-{

    return lambda args : args + parameter
    
#-}

#- 코드부분
vResult = pythonFunction1(100)
print(vResult(100))

vResult = pythonFunction1("프로그래밍")
print(vResult(" 파이썬"))

print('----------')

#- 함수부분
def pythonFunction2(parameter): #-{

    return lambda args1, args2 : args1 + args2 + parameter
    
#-}


#- 코드부분
vResult = pythonFunction2(100)
print(vResult(200, 300))

vResult = pythonFunction2("프로그래밍")
print(vResult("파이썬", " 자바스크립트"))

print('----------')

vResult1 = pythonFunction1(100)
vResult2 = pythonFunction2("프로그래밍")

print(vResult1(100))
print(vResult2("파이썬", " 자바스크립트"))

print('----------')

결과 화면을 보자.

위의 코드가 난해할 수 있지만 다시 언급하면 최초 함수를 호출할 때의 값과 변수로써 정의하여 사용할 때의 인자값이 구분된다.

최초로 함수를 호출할 때는 일반함수 형태를 사용한다.

변수에 함수를 선언하고 사용할 경우 람다 함수를 사용하게 된다. 

반응형

댓글