@Newbieee

Как получить информацию из объекта класса через словарь?

class Student
class Student:
    id = ''
    name = ''
    group = ''
    average_score = ''
    def __init__(self, _id, _name, _group, _average_score):
        self.id = _id
        self.name = _name
        self.group = _group
        self.average_score = _average_score


class StudentsSystem
class StudentsSystem:
    Handler = {}
    def __init__(self):
        print("Ready to work with students' data")
    def AddStudent(self, _id, _name, _group, _avgscore):
        self.Handler[_id] = Student(str(_id), str(_name), str(_group), str(_avgscore))
    def PrintInformation(self, _id):
        try:
            print(self.Handler[_id])
        except KeyError:
            print("Wrong child's ID")


Точка запуска программы
studentModule = StudentsSystem() # MAIN OBJECT
studentModule.AddStudent("321234312232", "Roh Socko", "9-A", "3.5") 
studentModule.PrintInformation("321234312232") # GET STUDENT'S INFORMATION USING ID


Каким образом получить данные из объектов класса Student, что хранятся в словаре Handler? К примеру, как мне получить pseudo_object.name?
  • Вопрос задан
  • 137 просмотров
Решения вопроса 2
Vindicar
@Vindicar
RTFM!
Я бы посоветовал убрать print() из класса.
Пусть ваш класс возвращает объект Student по запросу, а вызывающий код уже решает что с ним делать - печатать, брать отдельные поля, изменять...
Ответ написан
Комментировать
@o5a
Вместо PrintInformation сделать по логике просто возврат самого объекта студента
...
    def GetStudent(self, _id):
        return self.Handler[_id]

добавить те же Exception, если нужно.
А если нужно текстовое представление, добавить метод __repr__ с нужным отображением в сам класс студента.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы