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 |