7.4 Magic methods
You do not call the three methods __init__, __repr__, and __str__ directly; Python “magically” calls them for you when it needs to initialize an instance, get an input representation, or convert to a string. You can define several dozen such “magic methods” with predefined uses. The algebraic and comparison methods are important to us for polynomials, so let’s look at some examples.
7.4.1 Negation
I now define negation via __neg__, where I create a new polynomial by applying “-
” to each coefficient. In this third version of UniPoly
, I extend __init__ to accept a
coefficient and exponent.
class UniPoly:
# UniPoly creates univariate polynomials with integer coefficients
# Version 3
def __init__(self,
coefficient=1,
indeterminate='x',
exponent=0):
# Create a UniPoly object from...