Проверить что фамилия и имя = string через property.

Статус
Закрыто для дальнейших ответов.

Some_acc

Новичок
Пользователь
Ноя 29, 2022
15
0
1
Код:
class Student:
    def __init__(self, name, surname, group_number, great):
        self.name = name
        self.surname = surname
        self.group_number = group_number
        self.great = great


class ValidationError(Exception):
    pass


@property
def name(self):
    return self._name


@name.setter
def name(self, value):
    if not isinstance(value, str):
        raise ValidationError

    self._name = value


s1 = Student(76, 'Ivanov', 76, [4, 7, 8, 2, 4])
print(s1.name)

Здравствуйте!
Делаю следующую задачу и возник вопрос: Ввожу int для поля name, но ошибка не отображается. В чем может быть проблема, возможно не так обращаюсь?

Создайте класс Student, содержащий поля: фамилия и имя, номер группы, успеваемость (массив из пяти элементов, каждый элемент число от 1 до 10).
Проверить что фамилия и имя строки через property. Если не строка, вызываем ошибку ValidationError.
 

Some_acc

Новичок
Пользователь
Ноя 29, 2022
15
0
1
Все дело было в неправильных отступах, задача решена (y)
Код:
class ValidationError(Exception):
    pass


class Student:
    def __init__(self, name, surname, group_number, great):
        self.name = name
        self.surname = surname
        self.group_number = group_number
        self.great = great

    @property
    def name(self):
        return self._name

    @name.setter
    def name(self, value):
        if not isinstance(value, str):
            raise ValidationError

        self._name = value


s1 = Student(6, 'Ivanov', 76, [4, 7, 8, 2, 4])
print(s1.sur)
 
Статус
Закрыто для дальнейших ответов.

Форум IT Специалистов