본문 바로가기

라이브러리

[Python] callable() 함수 사용법

callable() 에 대하여 자세하게 알아봅시다

callable()

  • 설명: callable() 함수는 객체가 호출 가능한(callable) 객체인지 판별해 반환합니다. 즉, 함수처럼 사용할 수 있는 객체인지 True/False로 알려줍니다.
  • 반환값: 호출 가능하면 True, 아니면 False.
  • 주요 사용 예: 함수, 메서드, 클래스, __call__ 메서드를 가진 객체 등.

기본 사용법 예시

# 1. 함수는 호출 가능하다
print(callable(len))  # True

# 2. 리스트와 같은 내장 객체는 기본적으로 호출이 불가능하다
print(callable([1, 2, 3]))  # False

# 3. 사용자 정의 함수도 마찬가지로 True

def foo():
    pass

print(callable(foo))  # True

고급 사용법 예시

# 1. 클래스는 호출할 수 있으므로 callable이다 (인스턴스 생성이 된다)
class MyClass:
    pass
print(callable(MyClass))  # True

# 2. __call__ 메서드를 가진 객체도 호출 가능하다
class CallableDemo:
    def __call__(self):
        print("I'm called!")
cd = CallableDemo()
print(callable(cd))  # True

# 3. lambda(람다) 식도 함수이므로 호출 가능하다
f = lambda x: x * 2
print(callable(f))  # True

총평

callable() 함수는 객체가 '함수처럼' 사용할 수 있는지(즉, 직접 호출 가능한지)를 확인하는 아주 간단하면서도 강력한 도구입니다. 언제 객체를 함수처럼 쓸 수 있을지 헷갈릴 때, 혹은 동적으로 호출 가능 여부를 체크할 필요가 있을 때 매우 유용하게 사용됩니다. 특히 다양한 객체지향 기법(예: call 메서드 활용 등)에서 유용합니다.

'라이브러리' 카테고리의 다른 글

[Python] chr() 함수 사용법  (0) 2025.05.23
[Python] bytes() 함수 사용법  (0) 2025.05.23
[Python] bytearray() 함수 사용법  (0) 2025.05.23
[Python] breakpoint() 함수 사용법  (0) 2025.05.23
[Python] bool() 함수 사용법  (0) 2025.05.23