У меня есть класс и конструктор, над которыми я работаю, и я добавил дополнительный параметр в __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)
Да, вы абсолютно правы. Большое спасибо. Наконец-то начинаю чувствовать себя естественно с питоном, но кое-что меня сбивает с толку.
Это определяет функцию, а не класс:
def FeatureDataset(Dataset):
... пытаться ...
class FeatureDataset(Dataset):
не должен ли FeatureDataset() быть классом? вместо дефа?