개념
무명 함수의 이름보다 람다식으로 널리 알려진 무명 함수는 이름이 없고 몸체만 있는 간략화된 함수이다. python에서 무명함수의 표현은 lambda 키워드로 만들어 진다.
기본 함수와 람다식의 공통점은 다음과 같다.
- 여러개의 인수를 가질 수 있다.
기본 함수와 람다식의 차이점은 다음과 같다.
- 반환값은 하나만 존재
- return 키워드 필요 없고 항상 반환되는 수식만 적어주면 됨.
- print()함수를 사용할 수 없음
- 자신만의 이름 공간을 가지고 있어 전역변수 참조 불가
구조
lambda(인수1,...,인수n : 수식)
람다식과 일반 함수 비교 (동일 결과)
### 람다식 ###
sum = lambda x, y : x+y
print("합 계산: ", sum(10,20)) # 합 계산 : 30
### 일반 함수 ###
def get_sum(x,y):
return x+y
print("합 계산: ", sum(10,20)) # 합 계산 : 30
쓰임새
람다 함수는 코드 안에 함수를 포함하는 곳 어디서든 사용이 가능하다. GUI 프로그램에서 이벤트를 처리하는 콜백 함수(callback handler)에서 많이 사용 된다.
- 콜백 함수란? : 내가 직접 함수이름을 쳐서 호출시키는 것이 아닌 다른 함수에서 호출되는 함수를 콜백 함수라 부른다. 아래 예에서 repeat_10(print_hi)에서 print_hi가 호출함수가 된다.
def repeat_10(func) :
for i in range(10):
func(i)
def print_hi(number):
print("hello", number)
repeat_10(print_hi)
# 결과
hello 0
hello 1
hello 2
hello 3
hello 4
hello 5
hello 6
hello 7
hello 8
hello 9
- 위와 동일한 결과를 얻고자 할 떄 굳이 print_hi 함수를 만들지 않더라도 lambda 함수를 이용해 짧게 표현이 가능하다.
def repeat_10(func) :
for i in range(10):
func(i)
repeat_10(lambda number : print('heelow', number))
# 결과는 위와 동일
'프로그래밍 언어 > Python' 카테고리의 다른 글
[Python] % 서식 기호 (문자열 포메딩 방법 2) (0) | 2024.10.08 |
---|---|
[Python] format 함수 (문자열 포메팅 방법 1) (0) | 2024.10.08 |
[Python] capitalize(), title() 함수 비교 (0) | 2024.08.26 |
[Python] 문자열 함수 모음 (0) | 2024.08.26 |
[Python] 딕셔너리 키, 값 쌍 얻기 - items() (0) | 2024.08.26 |