본문 바로가기

Python/Basic

[파이썬] Lambda 함수

일급 함수

파이썬은 일급 객체를 지원하는 일급 함수를 사용합니다.
일급 함수는 함수 안에 함수를 선언 가능하고, 함수를 인자로 전달하거나 반환값으로 함수를 사용할 수 있습니다.

 

 

람다 함수

람다 함수는 이름이 없는 한 줄짜리 함수로, 간단한 함수를 간결하게 표현할 때 사용됩니다.

즉, def를 사용해야 될 정도로 함수의 내용이 복잡하지 않거나, def를 사용할 수 없는 상황일 때, 람다를 적용합니다.
람다 함수는 lambda 키워드를 사용하여 정의합니다. 

(lambda x, y: x + y)(1, 2)

람다함수 예시

 

람다 함수도 가변 인수를 받을 수 있습니다. 예를 들어, lambda a, *args, **kwargs: ...와 같이 사용할 수 있습니다.
리스트에 람다 함수를 저장하여 나중에 사용할 수 있습니다.

 

5.filter 함수와 람다
filter() 함수는 조건 함수를 만족하는 데이터만 반환합니다. 

filter(조건 함수, 순회가능한 데이터)

filter()함수는 두번째 인자로 넘엉온 데이터 중에서 첫번째 인자로 넘어온 조건 함수를 만족하는 데이터만 찾아서 반환

 

6. 함수 장식자
장식자는 다른 함수를 감싸서 함수를 변형하거나 추가 기능을 부여하는 역할을 합니다. @를 사용하여 함수 위에 장식자를 지정할 수 있습니다.

def make2(fn):
	return lambda : " 안녕 " +fn()

def make1(fn):
	return lambda: "반가워 "+fn()

def hello():
	return "한국인"

hi = make2(make1(hello))

print(hi()) # 안녕 반가워 한국인

@make2 # 데코레이터 : 함수들을 다 감쌈으로 위와 동일한 값이 출력됨
@make1
def hello2():
	return "신기해"

 

안녕 반가워 신기해

- 위의 코드 출력결과

 

 

7. 재귀 함수
재귀 함수는 함수가 자기 자신을 호출하여 작업을 수행하는 함수입니다. 주로 반복적인 작업을 처리할 때 사용됩니다.

 

def countDown(su):
    if su==0:
        print('완료')
    else:
        print(su,end=' ')
        countDown(su-1) #재귀
        
countDown(5)

 

5 4 3 2 1 완료

-위 코드의 실행결과