Я импортирую из CSV и получаю данные примерно в формате
{ 'Field1' : 3000, 'Field2' : 6000, 'RandomField' : 5000 }
Имена полей являются динамическими. (Ну, они динамичны в том, что их может быть больше, чем Field1 и Field2, но я знаю, что Field1
и Field2
всегда будут там.
Я хотел бы иметь возможность передать этот словарь в мой класс allMyFields
, чтобы я мог получить доступ к указанным выше данным в качестве свойств.
class allMyFields:
# I think I need to include these to allow hinting in Komodo. I think.
self.Field1 = None
self.Field2 = None
def __init__(self,dictionary):
for k,v in dictionary.items():
self.k = v
#of course, this doesn't work. I've ended up doing this instead
#self.data[k] = v
#but it's not the way I want to access the data.
q = { 'Field1' : 3000, 'Field2' : 6000, 'RandomField' : 5000 }
instance = allMyFields(q)
# Ideally I could do this.
print q.Field1
Есть предложения? Что касается того, почему - я хотел бы иметь возможность воспользоваться подсказками кода, а импорт данных в словарь под названием data
, как я делал, не позволяет мне ничего из этого.
(Поскольку имена переменных не разрешаются до времени выполнения, мне все равно придется бросить кость Комодо - думаю, self.Field1 = None
должно быть достаточно.)
Итак - как мне делать то, что я хочу? Или я лаю плохо спроектированное, не питонское дерево?