본문 바로가기
Software/Python

[파이썬의 기본] 함수에 사용되는 특별한 기능 - 람다(lambda) 함수

by lovey25 2019. 4. 24.
반응형

람다(Lambdas) 함수

람다함수는 개념적으로는 익명의 함수로 사용즉시 버리는 일시적인 함수이다(?)라고 하는데요. 무슨소리인지 잘 이해가 안가지만 기억할 만한것은 익명의 함수라서 함수 이름조차 없이 사용할 수 있고 그리고 일시적으로 사용하는 함수라서 런타임에 사용가능한 장점이 있는 그런 함수 정도로 개념을 잡고 시작하면 되지 않을까 싶습니다.

이것도 뭔말인가 싶네요 ㅎ

“def” 키워드를 사용해서 만드는 일반적인 함수의 생성은 보통 자동적으로 변수에 할당이 됩니다. 정수나 문자열 같이 변수에 할당하는 절차없이 생성할 수 있는 객체들과 다른점인데 “lambda”구문을 이용하면 함수에서도 똑같이 사용할 수 있고 이런 방식을 익명함수라고 한다고 합니다. 

이런 방법은 간단한 함수를 다른 함수의 매개변수로 전달해야 하는 경우 많이 사용하는 방식으로 이라고 하는데요 다음 예제를 보죠.

예제:

>>>def func1(func2, arg1):
...  return func2(arg1)
>>>func1(lambda x: x*x, 5)
25
>>>

이 예제는 아래 표현과 같은것이라고 볼 수있습니다.

>>> (lambda x:x*x)(5)
25
>>>

 

람다 함수는 변수에 할당하고 다른 함수들 처럼 사용할 수도 있습니다.

예제:

>>>plusone = lambda x: x + 1
>>>print(plusone(5))
6
>>>

 

람다함수는 이렇게 한줄로 표현되는 함수이기 때문에 간단하게 사용할 수 있는 반면 구조상 기능적 제약이 분명 있습니다.

그럼에도 불구하고 많은 경우에서 람다함수가 유용하게 사용된다고 하는데 아직 제 실력으로는 와닫지 않는 부분인것 같습니다. 앞으로 공부를 하면서 람다함수를 사용한 코드를 이해하기 위해서는 꼭 알아야 하는 개념인것 같습니다.

 

끝!

반응형

댓글