반응형
Python에서 callable() 함수는 특정 객체가 호출 가능한지를 판단하는 함수입니다. 이 함수는 객체가 callable 이라면 True, 아니라면 False를 반환합니다.
예를 들어, 함수, 메소드, 람다 표현식, 내장 함수 등은 callable 이지만, 숫자, 문자열, 리스트 등은 callable이 아닙니다.
def func():
print("Function")
class MyClass:
def method(self):
print("Method")
lambda_expression = lambda: print("Lambda expression")
print(callable(func)) # True
print(callable(MyClass.method)) # True
print(callable(lambda_expression)) # True
print(callable(1)) # False
print(callable("Hello, World!")) # False
print(callable([1, 2, 3])) # False
위 코드에서, func(), MyClass.method, lambda_expression은 callable 객체임을 보여줍니다. 반면, 숫자, 문자열, 리스트 등은 callable이 아님을 보여줍니다.
아래에는 실제 업무에서 사용할만한 예시를 작성해봤습니다.
def square(x):
return x**2
def is_callable(obj):
if callable(obj):
return True
else:
return False
print(is_callable(square)) # True
print(is_callable(5)) # False
squared = square(5)
print(is_callable(squared)) # False
is_callable() 이라는 함수를 만들어두고, callable한 객체인지 아닌지 판단하도록 구현했습니다.
suqared는 이미 square(5)로 처리되서 숫자가 들어가 있겠죠.
그래서 is_callable() 에 입력해보면 False가 리턴됩니다.
파이썬에서는 변수에 함수를 저장해서 사용할 수도 있기 때문에 callable로 확인하고 실행하는 로직에서도 사용될 수 있고요. 다양한 곳에서 사용될 수 있으니까 알아두시면 좋은 내장함수 입니다.
반응형
댓글