Designing with ABC callables
There are two easy ways to create callable objects in Python, as follows:
Using the
def
statement to create a functionBy creating an instance of a class that uses
collections.abc.Callable
as its base class
We can also assign a lambda form to a variable. A lambda is a small, anonymous function that consists of exactly one expression. We'd rather not emphasize saving lambdas in a variable as it leads to the confusing situation where we have a function-like callable that's not defined with a def
statement. The following is a simple callable object that has been created from a class:
import collections.abc class Power1( collections.abc.Callable ): def __call__( self, x, n ): p= 1 for i in range(n): p *= x return p pow1= Power1()
There are three parts to the preceding callable object, as follows:
We defined the class as a subclass of
abc.Callable
We defined the
__call__()
methodWe created an instance of the class,
pow1()
Yes, the...