Python에서 함수는 일급 객체입니다.
함수가 일급객체로 취급 받는다는 의미는 다음과 같습니다.
1. 변수에 할당할 수 있다
2. 매개변수로 전달할 수 있다.
3. 반환값으로 사용할 수 있다.
하나씩 살펴보겠습니다.
1. 함수를 다른 변수에 할당할 수 있다.
함수를 정의하면 다음과 같이 사용합니다.
def say_hello(name):
print('Hi ' + name)
say_hello('Python3')
그런데 say_hello는 함수이자 객체이므로 다른 변수에 할당하여 사용할 수 있습니다.
def say_hello(name):
print('Hi ' + name)
say_something = say_hello
say_something('Python3')
2. 함수를 매개변수로써 사용할 수 있다.
def add_num(a, b):
return a+b
def calculator(func, a, b):
result = func(a, b)
print(result)
calculator(add_num, 3, 5)
함수 add_num을 calculator의 인자로 전달하여 calculator 내부에서 사용할 수 있습니다.
3. 함수를 리턴값으로 사용할 수 있다.
def create_adder(x):
def adder(y):
return x + y
return adder
add_10 = create_adder(10)
result = add_10(5)
print(result) # 15
adder라는 함수를 반환하는 create_adder 함수를 만들었습니다.
이후 add_10이라는 변수를 두고 created_adder의 리턴값을 참조하게 만들면
add_10은 create_adder 내부에 adder 함수를 참조하고 있고
add_10(5)과 같이 호출하여 사용할 수 있습니다.
이 과정에서 초기 create_adder에서 받은 10을 들고 있어 add_10(5)의 결과가 15로 나오게 됩니다.
반응형
'파이썬 > 기초문법' 카테고리의 다른 글
Python if __name__ == '__main__': 에 대한 이해 / Python __name__ (0) | 2020.04.18 |
---|---|
Python namespace에 대한 이해 / Python 네임스페이스 (0) | 2020.04.15 |
Python Mutable vs Immutable / Mutable / Immutable (0) | 2020.03.16 |
Python 클래스에 대해 1 (0) | 2020.03.15 |
Python Exception 발생시 해당 소스, 라인 출력하기 (0) | 2020.03.03 |
댓글