ramakrishna reddy wrote:

> Can you please explain the functionality of collections.Callable ? If
> possible with a code snippet.

That's a pretty exotic beast that you stumbled upon.

>>> from collections.abc import Callable

You can use it to check if an object is callable, i. e. works like a 
function:

>>> isinstance("foo", Callable)
False
>>> isinstance(str, Callable)
True
>>> isinstance(lambda: 42, Callable)
True

You can also use it as a baseclass if you want to prevent subclasses from 
being instantiated unless they implement a __call__() method which makes 
those instances callable:

>>> class C(Callable): pass
... 
>>> c = C()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Can't instantiate abstract class C with abstract methods __call__
>>> class D(C):
...     def __call__(self, name="Al"):
...         return "You can call me {}".format(name)
... 
>>> d = D()
>>> isinstance(d, Callable)
True
>>> d()
'You can call me Al'


_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to