August 2018
Intermediate to advanced
366 pages
10h 14m
English
We created a new mul3 callable through functools.partial. This callable just calls operator.mul, passing 3 as the first argument and then passing any argument provided to the callable to operator.mul as the second, third, and so on arguments.
So, in the end, doing mul3(5) means operator.mul(3, 5).
This is because functools.partial creates a new function out of a provided function hardwiring the provided arguments.
It is, of course, also possible to pass keyword arguments, so that instead of hardwiring the first argument, we can set any argument.
The resulting function is then applied to all numbers through map, which leads to creating a new list with all the numbers from 0 to 10 multiplied by 3.