@property
def knots(self):
    if (self._knots is None):
        return tuple(np.linspace(*self.domain_range[0], ((self.n_basis - self.order) + 2)))
    else:
        return self._knots
@property
def knots(self):
    if (self._knots is None):
        return tuple(np.linspace(*self.domain_range[0], ((self.n_basis - self.order) + 2)))
    else:
        return self._knots