"""
Создайте класс Студент, имеющий: • закрытый атрибут Имя – строка, содержащая фамилию; • метод init. При создании объекта указывается имя, список Дисциплины пустой; • закрытый атрибут Дисциплины – словарь сданных дисциплин. Ключом является название дисциплины, значением – оценка. • метод put добавляет новую дисциплину в атрибут Дисциплины. Параметрами метода являются название дисциплины и оценка; • свойство Сдано возвращает список названий сданных дисциплин; Создайте экземпляр класса, продемонстрируйте работу с атрибутами, методами и свойствами. (20 баллов)
"""

class Student:
    def __init__(self, name):
        self.__name = name
        self.__disciplines = {}

    def put(self, discipline, grade):
        self.__disciplines[discipline] = grade

    @property
    def passed(self):
        return list(self.__disciplines.keys())

# Создание экземпляра класса Student
student1 = Student("Иванов")

# Добавление дисциплин и оценок
student1.put("Математика", 5)
student1.put("Физика", 4)
student1.put("Химия", 5)

# Вывод списка сданных дисциплин
print(f"Сданные дисциплины студента {student1.passed}")

# Попытка изменить имя студента (атрибут __name является закрытым)
# student1.__name = "Петров"  # Ошибка

# Добавление новой дисциплины
student1.put("Информатика", 5)

# Вывод обновленного списка сданных дисциплин
print(f"Сданные дисциплины студента {student1.passed}")