Python

[Python] 변수에 함수 저장

비번변경 2021. 11. 23. 20:02

파이썬에서 함수는 1급 객체(first-class object)이다.

1급 객체(first-class object)
프로그래밍 언어 디자인에서 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체
보통 함수에 매개변수로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원하는 객체를 말한다.

 

이 글에서는 1급 객체의 조건 중 하나인 변수에 함수를 할당하여 사용하는 방법에 대해 다룬다.

 

기본 사용

테스트 함수

두 수를 입력받아 그 합을 반환하는 더하기 함수를 예시로 들고자 한다.

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

 

변수에 테스트 함수 할당

result라는 변수에 테스트 함수를 할당한다.

함수를 호출해 반환 값을 변수에 저장하는 것과 함수를 변수에 저장하는 것의 차이를 구분해야 한다.

# 함수를 변수에 저장
result = plus

# 함수 호출 및 그 반환값을 변수에 저장
tmp = plus(3, 2)

 

변수에 저장한 테스트 함수 호출

print(result(3, 10))

 

실행 결과

변수에 함수 할당 테스트

 

딕셔너리 또는 리스트에 함수 저장

리스트 등의 자료구조 내에 함수를 저장하여 사용하는 것도 가능하다.

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


def minus(a, b):
    return a - b


# 함수를 리스트에 저장
result = [plus, minus]
print(f"result[0] {result[0](3, 10)}")
print(f"result[1] {result[1](3, 10)}")


# 함수를 딕셔너리에 저장
result_dict = {"plus": plus, "minus": minus}
print(f"result_dict[plus] {result_dict['plus'](3, 10)}")
print(f"result_dict[minus] {result_dict['minus'](3, 10)}")

 


 

참고 문서

https://ko.wikipedia.org/wiki/%EC%9D%BC%EA%B8%89_%EA%B0%9D%EC%B2%B4

 

일급 객체 - 위키백과, 우리 모두의 백과사전

컴퓨터 프로그래밍 언어 디자인에서, 일급 객체(영어: first-class object)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. 보통 함수에 매개변수로 넘기기, 수정하

ko.wikipedia.org

 

728x90