lambda

백승찬·2020년 10월 25일
0

python

목록 보기
6/10

람다

인라인 함수를 정의 할때 사용하며 익명함수 또는 람다 표현식이라고 부름

우리가 배웠던 함수

def name(arg1, arg2 ...):
    block of statement

람다와의 차이점

  1. 이름의 유무

  2. 함수는 내부에서 처리하는 로직들을 여러 문자으로 작성하는 블록으로 구성할 수있는 반면, 람다 표현식만 올수 있고 함수와 같이 return문이 없이도 표현식의 결과를 리턴

람다표현식

lambda argument1, argument2, ... argumentN : expression using arguments

람다의 간단한 실제 예제

f = lambda x,y,z : x+y+z

print(f) # <function <lambda> at 0x10343e710>
print(f(1,2,3))

여기서 x,yz는 argument1,2,3에 해당하고 expression은 x+y+z에 해당
호출해보면 6을 출력되는 것을 확인

람다 유용하게 사용하는 법

간단한 인라인 콜백함수를 만들거나 함수안에서 복잡한 처리를 할 수 없을 때 유용하다고 하수 있다.

콜백 함수란?
어떤 이벤트가 발생했을 때 호출되는 함수인데 콜백함수가 여러 블록으로 구성된 실행문이 아니고 다른 컴포넌트에서 사용되지 않는다면 해당 컴포넌트만을 위한 람다 표현식이 적절할 것

어떤 정수에 2제곱, 3제곱, 4제곱을 하는 예제)

Lambdas = [
    lambda x : x ** 2,
    lambda x : x ** 3,
    lambda x : x ** 4
]

for lambda_func in Lambdas:
    print( lambda_func(2) )

람다를 미사용했을 시에 예제)

def square(x): 
    return x ** 2

def power_3(x): 
    return x ** 3

def power_4(x):
    return x ** 4

powers = [ square, power_3, power_4 ]

for f in powers:
    print( f(2) )

0개의 댓글