Python

[Python] 익명 함수 - lambda 표현식

비번변경 2022. 4. 20. 20:23

def

리터럴 표기법에 따라 함수를 생성할 때 사용되는 키워드

def 키워드는 함수 클래스를 통해 함수 객체를 생성하고, 객체를 함수 이름과 같은 변수에 담는 과정을 담당한다.

변수에 담긴 함수 객체는 메모리에 올라가서 호출을 대기하는데, 이는 한 번만 사용될 함수라면 메모리 낭비에 해당된다.

 

한 번만 사용될 함수라면 익명함수를 사용하는 것이 좋다.

 

익명 함수

이름이 없는 함수를 뜻하며, Python에서는 lambda라는 키워드를 이용해 익명 함수를 정의할 수 있다.

이름이 없어 재사용이 불가능하다.

다만 일반 함수와 동일하게 변수에 할당될 수 있기 때문에, 변수에 저장된 lambda 함수는 재사용이 가능하다.

 

lambda

lambda 키워드를 이용한 함수는 람다 함수 또는 람다 표현식이라고 한다.

lambda 함수는 함수를 간결하게 표현할 수 있어, 다른 함수의 매개변수로 전달할 때 자주 사용된다.

lambda 매개변수, 매개변수 : 표현식(결과)

 

def 키워드와 lambda의 모양을 비교하면 아래와 같다.

def 사용

def plus(a, b):
    return a + b

print(plus(3, 5))

 

lambda 사용

print((lambda a, b: a + b)(3, 5))