[python] 파이썬에서 함수를 인자로 받거나 반환하는 방법에 대해 설명해주세요.

파이썬에서는 함수를 일급 객체로 취급합니다. 따라서 함수를 변수에 할당하거나, 다른 함수의 인자로 전달하거나, 반환값으로 사용할 수 있습니다. 이러한 기능을 활용하면 유연한 프로그래밍을 할 수 있습니다.

함수를 인자로 받는 경우, 함수 이름을 인자에 전달하고 해당 함수를 호출하는 방식으로 사용할 수 있습니다. 아래의 예제 코드를 살펴보겠습니다.

def operation(x, y, func):
    return func(x, y)

def add(x, y):
    return x + y

def subtract(x, y):
    return x - y

result = operation(5, 3, add)
print(result)  # 출력: 8

result = operation(5, 3, subtract)
print(result)  # 출력: 2

위의 예제에서 operation 함수는 두 개의 숫자와 함수를 인자로 받습니다. 이후 받은 함수를 호출하여 결과를 반환합니다. add 함수와 subtract 함수가 operation 함수의 인자로 전달되어 각각 덧셈과 뺄셈 연산을 수행합니다.

함수를 반환하는 경우, 함수의 내부에서 함수를 정의하고 해당 함수를 반환합니다. 아래의 예제 코드를 살펴보겠습니다.

def create_multiplier(n):
    def multiplier(x):
        return x * n
    return multiplier

double = create_multiplier(2)
result = double(5)
print(result)  # 출력: 10

triple = create_multiplier(3)
result = triple(5)
print(result)  # 출력: 15

위의 예제에서 create_multiplier 함수는 인자로 전달된 숫자를 기반으로 내부에 함수를 정의하고 반환합니다. 반환된 함수는 전달된 숫자와 받은 인자를 곱한 결과를 반환합니다. doubletriple 변수에 각각 create_multiplier 함수의 반환값을 할당하고, 이후 해당 변수를 사용해 값을 계산합니다.

위의 예제 코드를 통해 파이썬에서 함수를 인자로 받거나 반환하는 방법을 살펴보았습니다. 이러한 방법을 사용하면 함수를 효율적으로 재사용하거나 동적으로 사용할 수 있습니다.