首页 > 解决方案 > 创建“类”时ipython中的语法错误

问题描述

我很难理解为什么我不能执行这段代码?当我这样做时,我不断收到语法错误(第 6 行)。有任何想法吗 :( ?

from collections import Counter

def Edistance(x1, x2):
    return np.sqrt(np.sum((x1-x2)**2)

class KNN:
    
    def _init_(self, k=3):
        self.k = k
        
    
    def fit(self, X, y):
        self.X_Train = X
        self.y_Train = y
    
    
    def predict(self, X):
        predicted_labels = [self._predict(x) for x in X]
        return np.array(predicted_labels)
        
    def _predict(self, x):
        distances = [Edistance(x, x_train) for x_train in self.X_Train]
        k_indices = np.argsort(distances)[:self.k]
        k_nearest_labels = [self.y_Train[i] for i in k_indices]
        most_common = Counter(k_nearest_labels).most_common(1)
        return most_common[0][0]

文件“<ipython-input-388-25faf7c817d3>”,第 6 行类 KNN:^ SyntaxError:无效语法

标签: pythonsyntax-error

解决方案


您没有在第 4 行关闭括号,因此在第 4 行末尾添加一个括号。

PS 构造函数是__init__,但你写的_init_


推荐阅读