170 похожих чатов

Господа, максимально тупой вопрос. можно ли определить атрибут класса автоматически. Ну

т.е. мы не знаем, сколько атрибутов будет у экземпляра класса, но есть словарь для каждого экземпляра.
Соответственно, существует ли возможность создавать атрибуты класса, основываясь на словаре экземпляра?

10 ответов

19 просмотров

setattr(object, name, value) А... Или ты хочешь в самом классе динамически переписывать атрибуты, прогнав через установщик атрибутов кучу экземпляров класса?

Usefff- Автор вопроса
Ярослав
setattr(object, name, value) А... Или ты хочешь в...

по факту, всегда будет создаваться один экземпляр класса, но всегда с разным количеством атрибутов. Короче проще походу в функцию все это вывести

Usefff
по факту, всегда будет создаваться один экземпляр ...

Как он будет создаваться, если он у тебя уже есть? В опщем, диковато как-то

Usefff- Автор вопроса

Смотри. Есть данные вида: filename, class0, class1, .. , classN a.jpg, value0, value1, ..., valueN Класс предназначен для того, чтобы переварить эти данные и посчитать статистику и т.п. Проблема в том, что мы не знаем сколько будет классов, может быть 2, может быть 20. у меня есть кусок кода такой: class DatatAttributes: def __init__(self, annotation_path, number_of_classes): classes = {} for i in range(0, number_of_classes): classes[f'class{i}'] = [] with open(annotation_path) as f: reader = csv.DictReader(f) for row in reader: for i in range(0, number_of_classes): classes[f'class{i}'].append(row[f'class{i}']) self.number_class0 = len(np.unique(classes['class0'])) В данном случае мы создаем аттрибут number_class0, который сохраняет в себе уникальные значения по всем файла для столбца class0. И тут все понятно. Но я не знаю сколько у меня будет этих столбцов

Usefff
Смотри. Есть данные вида: filename, class0, class1...

Я может не совсем верно тебя понял, но не проще сделать поле filename_classes со списком внутри, где все это классы хранить?

Usefff- Автор вопроса
Илья Власов
Я может не совсем верно тебя понял, но не проще сд...

хм, можно сделать словарь, по типу: self.classes_values = {} потом в него запихать значения class0: 200, class1: 150, ..., classN: N

Usefff
хм, можно сделать словарь, по типу: self.classes_v...

Ну либо словарь, я не знаю что для тебя лучше. Но на будущее, если ты в какой-то момент начинаешь хотеть прикрутить метакласс, всякие setattr использовать или интерполяции, то стоит начать с того, чтобы подумать как можно этого избежать. Возможно стоит переделать всю архитектуру даже, но отказаться от такой залупы, потому что ее поддерживать это ад натуральный(я сейчас этим занимаюсь, это шок)

Usefff- Автор вопроса
Илья Власов
Ну либо словарь, я не знаю что для тебя лучше. Но ...

согласен, я поэтому и пришел сюда, чтобы свежий взгляд посмотрел и сказал, что это залупа

Usefff
согласен, я поэтому и пришел сюда, чтобы свежий вз...

А ну это нормально) Я просто на всякий случай написал, не воспринимай как критику

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта