callable



>>> callable(object)


전달받은 object 인자가 호출 가능한지 여부를 판단한다. 


__builtin__ module에 포함된 function 이다. 



argument


object - 호출 가능 여부를 판단할 object 인자 하나를 넘겨준다.




return value


인자로 전달받은 object가 호출 가능한 object일 경우 True, 아닐 경우 False를 반환한다.




example


호출 불가능한 변수형 object 와 호출 가능한 함수형 object 의 예)

>>> sample = 1
>>> callable(sample)
False
>>> def funcSample():
...     print('sample')
...
>>> sample = funcSample
>>> callable(sample)
True


호출 가능하도록 __call__이 정의된 object (class) 의 예)


해당 예제에서 class 자체는 호출을 통해 instance를 생성하기 때문에 callable, 생성된 instance는 __call__() 이 class 내에 정의되어 있어서 callable 하다.

>>> class Sample:
...     def __call__(self):
...             print('sample')
...
>>> callable(Sample)
True
>>> sample = Sample()
>>> callable(sample)
True
>>> sample()
sample


__call__이 정의되지 않은 object (class) 의 예)


해당 예제에서 class 자체는 호출을 통해 instance를 생성하기 때문에 callable, 생성된 instance는 __call__() 이 class 내에 정의되어 있지 않기 때문에 callable 하지 않다.

>>> class Sample:
...     def funcCall(self):
...             print('sample')
...
>>> callable(Sample)
True
>>> sample = Sample()
>>> callable(sample)
False
>>> sample()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: Sample instance has no __call__ method