파이썬의 함수는 이와 같은 특징이 있다.
- 변수 및 자료구조에 할당 가능
- 함수 인수 전달 가능
- 함수 결과 반환 가능
즉, 파이썬의 함수는 그 자체만으로도 일급 함수라는 것이다.
이와 같은 특징을 코딩을 통해 확인하고자 한다.
흔히 우리가 보거나 만드는 factorial 기능을 가지는 함수를 보자.
def factorial(num) -> int:
if num == 1 :
return 1
return num*factorial(num-1)
이 함수는 현재 return 값을 함수로 주고 있다.
그러면 변수에도 함수가 할당이 가능한지 확인해보자.
var_func = factorial
이 때 파일을 실행해도 에러가 나지 않으며, VS Code에서 var_func위에 마우스를 올려 두면 var func : (num) -> int 가 뜬다. 변수에 함수가 할당이 된 것이다.
이 상태에서 var_func에다가 10을 전달해보자.
print(var_func(10))
그러면 변수에 할당된 상태로 함수가 실행이 된다.
자료구조에서도 정말 할당이 가능할까?
list = [factorial]
list[0](5) #결과는 120
리스트에 할당해본 다음에 리스트의 인덱스를 통해 함수를 불러오고 인자를 전달하니 결과가 120이 나왔다.
그 다음으로는 함수를 인자로써 전달해보자.
def factorial_this(func, a, b):
print(factorial(a))
print(factorial(b))
factorial_this(factorial, 5, 3)
결과는 120, 6으로 알맞게 나왔다.
'조열심 카테고리 > Python 이것저것' 카테고리의 다른 글
| [Python] 자신만의 Error 만들기 (0) | 2022.05.11 |
|---|---|
| [Python] 제너레이터 내포 표기 (0) | 2022.05.11 |
| [Python] Iterator, Generator(이터레이터, 제너레이터) (0) | 2022.01.05 |
| [ML] 특성 선택 방법론 (0) | 2022.01.02 |
| [Python] 웹크롤링으로 멜론 차트 100 가져오기 (0) | 2021.12.31 |