Im doing a class for polynomial and i have a problem with a copy function. It suppose to create a copy of the Poly object and return a reference to the new Poly object. Im really stuck on this copy idea. Thanks for any help
class Poly:
def __init__ (self, p):
self.a = p
self.deg= len(p) -1
if len(p) == 1 and p[0] == 0:
self.deg = -1
def evalPoly(self,x0):
''' evaluates the polynomial at value x'''
b=0
for coefficients in reversed(self.a):
b=b*x0+int(coefficients)
return b
def polyPrime(self):
'''replaces the coeffiecients of self with the coefficients
of the derivative polynomial '''
if self.deg == 0:
return np.zeroes(1,float), 0
else:
newdeg=self.deg-1
p=[i*self.a[i] for i in range(1,self.deg+1)]
p=str(p)[1: -1]
p=eval(p)
return p
def copy(self):
return Poly(self.a)
I’m stuck on how to create a copy of the Poly object and return a reference to the new Poly object
I think the problem you are having is that as
self.ais a list then you are passing a reference to that list in the instantiation of the new Poly object.You should copy the list and give that copy to instantiate the object: