Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 함수를 다른 함수의 인수로 전달하는 방법

파이썬에서 함수를 인수로 전달하기

파이썬에서는 함수가 일급 객체(first-class object)로 취급됩니다. 따라서 함수를 변수에 할당하거나, 다른 함수의 반환값으로 사용하거나, 다른 함수의 인수로 전달하는 것이 모두 가능합니다.

첫 번째 매개변수로 함수를 받는 대표적인 내장 함수가 바로 map()입니다.

map(function, iterable, ...) — 반복 가능한 객체(iterable)의 모든 항목에 지정된 함수를 적용하고, 그 결과를 반환합니다.

내장 함수뿐만 아니라, 직접 작성한 커스텀 함수에도 함수를 인수로 전달할 수 있습니다.

예제

아래 코드는 map() 메서드를 사용해 제곱을 계산하는 함수 sqr(x)를 함수 인수로 전달하는 예제입니다.

s = [1, 3, 5, 7, 9]

def sqr(x):
    return x ** 2

print(list(map(sqr, s)))

동일한 결과를 얻으려면 람다(lambda) 함수를 사용하는 방법도 있습니다. 간단한 연산이라면 별도의 함수를 정의하지 않고 람다식으로 더욱 간결하게 처리할 수 있습니다.

s = [1, 3, 5, 7, 9]
print(list(map((lambda x: x**2), s)))

출력 결과

[1, 9, 25, 49, 81]

이처럼 파이썬에서는 함수 자체를 데이터처럼 다룰 수 있기 때문에, 코드의 재사용성과 유연성을 크게 높일 수 있습니다. map(), filter(), sorted(key=...) 등 다양한 내장 함수와 함께 활용하면 더욱 효율적인 프로그래밍이 가능합니다.