Я хочу объявить множество именованных объектов с атрибутами, исходящими из вложенного словаря

#python #class #dictionary

Вопрос:

Я новичок в занятиях и просто пытаюсь включить это в свою задачу, чтобы посмотреть, поможет ли это мне. Я объявил класс с именем Client, начальными атрибутами которого являются имя и активы, которые являются именами, а не значениями.

Я читаю данные из фрейма данных, чтобы объединить клиентов и активы в словарь, там идея была бы:

 client_dict[client_1] = <list of assets that client 1 holds>

client_dict[client_2][asset_x] = <the price/value of client 2's holding in asset x>
 

У меня есть эта настройка словаря, хотя моя верхняя строка фактически вытянет вложенный словарь, поэтому вместо этого:

client_dict[client_1] = <dictionary where keys are all the ***keys**** are the assets the values are the prices> *хорошо, я думаю, что просто решил эту проблему, высказав ее, заранее спасибо

Однако я также должен передать весь клиентский словарь в свой клиентский класс, чтобы все клиенты были доступны по их уникальным именам. Куда бы я ни посмотрел, учебные пособия определяют объекты явно, по одному за раз. У меня есть 50 клиентов с уникальными именами, я хочу передать их всех и иметь возможность получить доступ к их атрибутам и, в конечном счете, методам под этим именем. Не входя в них по одному за раз. Как?! Я могу передать словарь нормально, но попытка вызвать клиента после (client_x.атрибут) говорит мне, что client_x не определен.

Спасибо за вашу помощь.

Комментарии:

1. Мне не ясно, какие преимущества вы получите от определения классов по сравнению с определением диктантов. Можно иметь какой-то базовый класс с базовым набором атрибутов и динамически определять новые атрибуты (setattr или перегрузка getattribute ), но в чем будет преимущество перед использованием объекта с данными в dict? Я вроде как чувствую, что мы, возможно, недостаточно хорошо понимаем друг друга. Кроме того, играя с setattr, getattribute , вы бы не стали этого делать, если бы только начинали с классов.

2. Спасибо тебе за твою мысль, Петр. Я признаю, что, вероятно, делаю много неэффективных шагов. Я извлек исходные данные из sql-запроса, который обычно помещается в книгу Excel. Работать с этим фреймом данных несколько неудобно, так как мне нужно связать его со многими другими таблицами. Работа со словарями кажется мне естественной, чтобы не потерять связи между переменными, и что я снова превращу ее в фрейм данных, как только все данные будут собраны. Поэтому я решил, что, поскольку я уже работаю со словарями, было бы удобно передать их в мой клиентский класс fcn таким образом.