构造函数__init__写成带两个位置参数,但是使用时报错,只允许1个

Constructor __init__ is written to take two position arguments, but when used, reports the error that only 1 is allowed

我有一个 class 和我正在处理的构造函数,我向 __init__ 添加了一个额外的参数,现在我收到错误 TypeError: FeatureDataset() takes 1 positional argument but 2 were given.

我不知道为什么。在我看来,它应该接受两个论点。这是一个不完整的函数,但我想克服这个构造函数参数号错误。我已经检查了几个答案,它们要么是关于某些特别不同的东西,要么是关于缩进,而我都没有这些问题(每个新的缩进分隔 4 个缩进)。

def FeatureDataset(Dataset):

    def __init__(self, root_dir, file_name):

        #load csv
        self.file_out = pd.read_csv(file_name)
        self.root_dir = root_dir
        self.labels = self.file_out.iloc[1:160, 0].values
        self.features = self.file_out.iloc[1:160, 1:].values

        #Feature Scaling
        sc = StandardScaler()
        label_train = self.labels
        feature_train = self.features #sc.fit_transform(features)

        #Convert to torch tensors
        self.feature_train = torch.tensor(label_train, dtype = torch.float32)
        self.label_train = torch.tensor(label_train)

file_name = "data.csv"
root_dir = "archive"
feature_set = FeatureDataset(root_dir, file_name)

这定义了一个函数,而不是一个class:

def FeatureDataset(Dataset):

...尝试...

class FeatureDataset(Dataset):