Designing with ABC callables
There are two easy ways to create callable objects in Python, as follows:
Using the
defstatement to create a functionBy creating an instance of a class that uses
collections.abc.Callableas 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.CallableWe defined the
__call__()methodWe created an instance of the class,
pow1()
Yes, the...