First, we will demonstrate the power of the Python constructs presented so far by designing a class for polynomials.
Note that this class differs conceptually from the class numpy.poly1d.
We will give some theoretical background, which will lead us to a list of requirements, and then we will give the code, with some comments.