반응형
안녕하세요. 오늘의 주제는 함수를 객체처럼 다루기 입니다.
일단 아래와 같이 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]
위와 같이 구현하는 스타일을 함수형 프로그래밍이라고 부릅니다.
끝
반응형
'Data Engineer' 카테고리의 다른 글
파이썬 데일리코딩 - 덕 타이핑 (1) | 2024.11.17 |
---|---|
파이썬 데일리코딩 - 이터레이터 만들어보기 (1) | 2024.11.16 |
파이썬 데일리코딩 - 운영 수준의 작성 습관(1) (1) | 2024.11.12 |
파이썬 데일리코딩 - dict_get, swap (2) | 2024.11.01 |
Pandas DataFrame 자주 사용하는 함수 정리 (0) | 2024.11.01 |