Data Engineer
파이썬 데일리코딩 - 함수를 객체처럼 다루기
jssvs
2024. 11. 14. 21:13
반응형
안녕하세요. 오늘의 주제는 함수를 객체처럼 다루기 입니다.
일단 아래와 같이 factorial 함수를 간단히 작성해보겠습니다.
def factorial(n):
if n < 2 :
return 1
return n * factorial(n-1)
print(factorial(3))
print(factorial.__doc__) # return n!
아래 처럼 함수 객체를 새로운 fact 라는 변수에 할당하고, 이 변수명을 통해 함수를 호출해볼 수 있습니다.
fact = factorial
fact(5)
이번엔 factorial 을 map() 을 써서 호출해보겠습니다.
(참고로 map 함수는 반복 가능한 객체를 2번째 요소로 넣어, 1번째 함수의 적용한 결과를 가지는 반복 가능형 객체를 반환합니다.)
map(fact,range(5)) -> 0 부터 4까지의 리스트
이렇게 하면 map의 주소가 출력되기 때문에, 가시적으로 확인하기 위해 list 로 형변환 해보겠습니다.
list(map(factorial,range(5)))
-> output [1, 1, 2, 6, 24]
위와 같이 구현하는 스타일을 함수형 프로그래밍이라고 부릅니다.
끝
반응형