Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过继承访问时,类方法不返回值_Python_Python 3.x_Oop_Inheritance - Fatal编程技术网

Python 通过继承访问时,类方法不返回值

Python 通过继承访问时,类方法不返回值,python,python-3.x,oop,inheritance,Python,Python 3.x,Oop,Inheritance,我有一个类方法,当我尝试通过继承的子类进行访问时,它会停止返回值 不知道是什么导致它无法返回适当的值 以下是我所拥有的: class KNN(): 定义初始化(self,邻居=5,居中=True): self.neights=邻居 以自我为中心 def_get_距离(self,xi): 返回np.sqrt((xi-self.X_fit)**2.sum(1)) def配合(自、X、y): 如果以自我为中心: self.X_拟合=标准化(X) 其他: self.X_fit=X self.y_fit=

我有一个类方法,当我尝试通过继承的子类进行访问时,它会停止返回值

不知道是什么导致它无法返回适当的值

以下是我所拥有的:

class KNN():
定义初始化(self,邻居=5,居中=True):
self.neights=邻居
以自我为中心
def_get_距离(self,xi):
返回np.sqrt((xi-self.X_fit)**2.sum(1))
def配合(自、X、y):
如果以自我为中心:
self.X_拟合=标准化(X)
其他:
self.X_fit=X
self.y_fit=y
def预测(自、X、居中=假):
m、 n=X.shape[0],自X_拟合形状[0]
self.dist_矩阵=np.zeros((m,n))
X_pred=np.zero(X.shape)
如果标准化:
X_pred=标准化(X)
其他:
X_pred=X
对于范围(m)内的行:
self.dist\u矩阵[行]=self.\u获取距离(X\u pred[行])
self.idx_vals=np.argsort(self.dist_矩阵)[:,:self.neights]
self.y_idx=self.y_fit[self.idx_vals]
self.preds=[self.neighbor_计算(self.y_idx[i]),用于范围(len(self.y_idx))]
返回self.preds
如果我直接访问
KNN
类,
predict
方法按预期工作,并返回一个预测值数组

但是,当我尝试创建从
KNN
继承的子类时,它停止了:

class KNNClassifier(KNN):
    def predict(self, X, centered=False):
        self.neighbor_calculation = majority_vote
        super().predict(X, standardize)
当我通过
KNN分类器
类访问
predict
方法时,它不会返回值

但是,
self.preds
包含实际预测

但是尝试类似于
knnclasifier.predict(X)[:10]
的方法会给出错误消息:

'NoneType' object is not subscriptable'

我不知道为什么返回的值突然被解释为
None

您正在使用
super
从子方法调用父方法,这是正确的,但是您需要使用
return
返回值:

return super().predict(X, standardize)