python subclasses
17,155
Solution 1
You probably want
class Quadratic(Polynomial):
def __init__(self, quadratic, linear, constant):
Polynomial.__init__(self, (2, quadratic), (1, linear), (0, constant))
Solution 2
You should also use super()
instead of using the constructor directly.
class Quadratic(Polynomial):
def __init__(self, quadratic, linear, constant):
super(Quadratic, self).__init__(quadratic[2], linear[1], constant[0])
Author by
me45
Updated on June 04, 2022Comments
-
me45 about 2 years
I currently have a class called Polynomial, The initialization looks like this:
def __init__(self, *termpairs): self.termdict = dict(termpairs)
I'm creating a polynomial by making the keys the exponents and the associated values are the coefficients. To create an instance of this class, you enter as follows:
d1 = Polynomial((5,1), (3,-4), (2,10))
which makes a dictionary like so:
{2: 10, 3: -4, 5: 1}
Now, I want to create a subclass of the Polynomial class called Quadratic. I want to call the Polynomial class constructor in the Quadratic class constructor, however im not quite sure how to do that. What I have tried is:
class Quadratic(Polynomial): def __init__(self, quadratic, linear, constant): Polynomial.__init__(self, quadratic[2], linear[1], constant[0])
but I get errors, anyone have any tips? I feel like I'm using incorrect parameters when I call the Polynomial class constructor.
-
me45 over 12 yearsThanks this worked, I just put the numbers in the wrong place.
-
kelorek over 10 yearsCan you elaborate on why that is better?
-
kelorek over 10 yearsGot it. See this post for more info: stackoverflow.com/questions/576169/…