2015-03-22 2 views
1

Я создал следующий класс пользователя.Класс и объекты Python

class User: 

    def __init__(self, ID, gender, age_group, city): 
     self.ID = ID 
     self.gender = gender 
     self.age_group = age_group 
     self.city = city 

Я позже создаю два объекта класса User и добавлю их в список.

uList = [] 

u1=User('Alice','f','20-35','abs') 
u2=User('Bob','m','35-50','xyz') 

uList.append(u1) 
uList.append(u2) 

Я сохраняю этот список пользователей, используя библиотеку рассола.

я, очевидно, может получить доступ к каждому объекту из этого списка, как: uList [0], uList [1]

Идентификатор в данных представляет собой уникальный идентификатор для каждого пользователя. Мой вопрос задан ID, могу ли я получить весь объект, чтобы получить соответствующие атрибуты?

Я всегда могу использовать словарь следующим образом:

uList = {} 
uList['Alice']=u1 
uList['BoB']=u2 

Является ли это единственный способ? Есть ли способ лучше?

Любая помощь будет оценена по достоинству. Спасибо.

+0

A dict is fine. FWIW, вы можете использовать namedtuples вместо пользовательского класса для хранения ваших данных. Если вы определенно хотите использовать класс, подумайте об использовании ['__slots__'] (https://docs.python.org/2/reference/datamodel.html#slots), чтобы уменьшить требования к ОЗУ. –

ответ

0

Я считаю, что вы действительно должны заглянуть в библиотеку Shelve. Это, по сути, словарь, который использует рассол, чтобы стать постоянным.

Смежные вопросы