[Python]

[python] callable이란?

quokkalover 2022. 5. 22. 16:30

python에서 callable이란 호출가능한 클래스 인스턴스, 함수, 메서드 등 객체를 의미한다. 참고로 파이썬에서는 모든 것이 객체기 때문에, 함수도 하나의 객체다. 함수 안에 data variable, 또 다른 함수 등을 가질 수 있고, 다른 함수의 argument로 전달될 수도 있기 때문이다.

 

무튼 callable을 정리해보면 아래와 같다.

(1) __call__ 메서드가 있는 클래스 인스턴스거나

(2) 호출 가능한 메서드나 함수

 

그리고 위와 같이 객체가 callable한지 아닌지 판단하도록 해주는 callble이라는 내장함수가 있다. 이 함수는 해당 객체가 호출가능한지 점검한다.

 

예를 들어보자

 

(1) 함수 = callable

(2) __call__ 를 내장한 클래스 인스턴스 = callable

(3) __call__ 를 내장하지 않은 일반 클래스 = callable이 아님

 

 

참고자료

https://stackoverflow.com/questions/48461989/python-what-does-it-mean-for-a-class-to-be-callable