Menu
Coddy logo textTech

Functions as Arguments

Coddy의 Python 데코레이터 코스 레슨. 12개 중 3번째.

Python에서는 함수를 다른 함수의 인자로 전달할 수 있습니다.

예를 들어,

def add_numbers(a, b):
    return a + b

def multiply_numbers(a, b):
    return a * b

def calculate(func, a, b):
    return func(a, b)

result = calculate(add_numbers, 2, 3)
print(result) # 출력: 5

result = calculate(multiply_numbers, 2, 3)
print(result) # 출력: 6

이 예제에서는 add_numbersmultiply_numbers라는 두 개의 함수를 정의합니다.

그런 다음 func라는 함수를 첫 번째 인자로 받고, 두 개의 추가 인자 ab를 받는 calculate라는 세 번째 함수를 정의합니다.

calculate를 호출할 때, 사용하고자 하는 함수의 이름(add_numbers 또는 multiply_numbers)을 func 인자로 전달하고, 연산하려는 두 숫자도 함께 전달합니다.

calculate 함수는 두 숫자와 함께 func 함수를 호출하고 그 결과를 반환합니다.

위의 예제에서 calculate를 두 번 호출합니다. 한 번은 add_numbers를 사용하고, 다른 한 번은 multiply_numbers를 사용합니다.

첫 번째 호출은 2와 3의 합(5)을 반환하고, 두 번째 호출은 2와 3의 곱(6)을 반환합니다.

challenge icon

챌린지

쉬움

정수 리스트와 연산자 함수를 인자로 받는 list_operator라는 함수를 작성하세요.

operator 함수는 두 개의 정수를 입력으로 받아 하나의 정수를 결과로 반환해야 합니다.

list_operator 함수는 리스트에 있는 모든 인접한 정수 쌍에 대해 연산자 함수를 적용하고, 그 결과들로 구성된 새 리스트를 반환해야 합니다.

함수가 어떻게 작동해야 하는지에 대한 예시는 다음과 같습니다:

>>> numbers = [1, 2, 3, 4, 5]
>>> result = list_operator(numbers, operator.add)
>>> result
[3, 5, 7, 9]

>>> numbers = [10, 20, 30, 40]
>>> result = list_operator(numbers, operator.mul)
>>> result
[200, 600, 1200]

제약 사항

  • 입력 리스트에는 항상 최소 두 개의 정수가 포함됩니다.
  • 연산자 함수는 항상 두 개의 정수를 입력으로 받아 하나의 정수를 결과로 반환합니다.

참고! 연산자 함수는 저희가 제공하므로, 직접 만들 필요 없이 사용하기만 하면 됩니다.

직접 해보기

Python 데코레이터의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러