반응형

파이썬, 람다(lambda) 함수를 다른 함수의 인수 값으로 전달하는 예제 

 

글. 오상문 sualchi@daum.net

 

함수의 전달인수 값으로 람다 함수 이름을 전달할 수도 있습니다. 람다 함수를 전달인수 값으로 사용하는 계산 함수 예제는 다음과 같습니다. 일반 함수처럼 람다 함수 이름을 그대로 전달하면 됩니다.

 

# 더하기 함수

add = lambda a,b: a+b

 

# 빼기 함수

sub = lambda a,b: a-b

 

# 곱하기 함수

 

mul = lambda a,b: a*b

 

# 나누기 함수(결과는 float 형)

div = lambda a,b: None if b==0 else a/b

 

# 나머지 함수

mod = lambda a,b: a%b

 

# 계산 함수

# 위에서 만든 add, sub, mul, div, mod 람다 함수를 전달받아 계산 값을 돌려준다,

def calc(a, b, func):
    return func(a, b)

 

# 테스트
print(calc(20,6, add))    # 26
print(calc(20,6, sub))    # 14
print(calc(20,6, mul))    # 120
print(calc(20,6, div))    # 3.33333333333333353.

print(int(calc(20,6, div)))  # 3
print(calc(20,0, div))     # None
print(calc(20,6, mod))   # 2

 

[실행 결과]

26
14
120
3.3333333333333335

3
None
2

 

[참고] 함수 인수를 전달할 때 이름없는 람다 함수를 직접 지정할 수 있습니다.

예를 들어 clac 함수에 더하기 람다 함수를 직접 넣어주려면 다음처럼 작성할 수 있습니다.

calc(10, 20, lambda a,b: a+b)

 

<이상>

반응형

+ Recent posts