Автоматизированный и масштабируемый подход для хранения каждого элемента словаря в атрибутах класса (экземпляра) с одинаPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Автоматизированный и масштабируемый подход для хранения каждого элемента словаря в атрибутах класса (экземпляра) с одина

Сообщение Гость »


У меня есть словарь input_dict={'foo1':3, 'foo2':6, и я хочу сохранить его содержимое в экземпляре класса matClass, например что mat.foo1=3, mat.foo2=6 и т. д.

Мне нужно автоматизировать этот процесс, поскольку размер словаря может меняться в зависимости от действий пользователя.

Приведенный ниже код перебирает элементы словаря и использует setattr для итеративного создания атрибутов класса с тем же ключом и значением, что и словарь. Оператор if предназначен для проверки того, что переменные, введенные пользователем, действительно поддерживаются остальной частью кода.

input_dict = {'foo1':3, 'foo2':6} класс matClass: разрешенный_вход = ['foo1', 'foo2'] защита __init__(сам): проходить Защиту import_data(self, input_dict): если установлено (список(input_dict.keys())).issubset(self.allowed_input): для ключа значение в input_dict.items(): setattr(я, ключ, значение) мат = матКласс() mat.import_data(input_dict) Есть ли более чистый способ сделать это? Есть ли в этом подходе скрытые опасности?

Я не обязательно привязан к словарям, я мог бы использовать фреймы данных, если это удобнее.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»