Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты ВвИТ, СиСС, Экзамен 3 сем, 2021.docx
Скачиваний:
33
Добавлен:
21.01.2022
Размер:
41.28 Кб
Скачать

22. Множественное наследование в python. Выбор вызываемого метода. Привести пример.

Один класс, расширяющий более одного класса, называется множественным наследованием в Python. Так как наследование подразумевает использование методов наследуемых классов, то вызывать метод можно от наследника.

Пример множественного наследования:

# Первый родительский класс

class Person:

def __init__(self, personName, personAge):

self.name = personName

self.age = personAge

def show_name(self):

print(self.name)

def show_age(self):

print(self.age)

# Второй родительский класс

class Student:

def __init__(self, studentID):

self.id = studentID

def get_id(self):

return self.id

# Наследующий класс

class Resident(Person, Student):

def __init__(self, name, age, id):

Person.__init__(self, name, age)

Student.__init__(self, id)

# Создание объекта подкласса и вызов методов

resident1 = Resident('Bob', 20, '123')

resident1.show_name()

print(resident1.get_id())

Классы Person и Student являются здесь суперклассом, а Resident – подклассом. Класс Resident расширяет как Person, так и Student, чтобы наследовать свойства обоих классов. Этот код дает следующий результат:

Bob

123

23. Как работают функции isinstance и issubclass? При решении каких задач они могут пригодиться.

Isinstance - эта функция вернет True, если проверяемый объект окажется экземпляром указанного класса или его подкласса.

Issubclass - эта функция возвращает True, если указанный класс является подклассом указанного класса. Класс считается подклассом самого себя.

Их можно использовать для проверки типа и выполнения различных операций в зависимости от типа объекта.

24. Что такое иерархия исключений в python? Объяснить принцип ее построения. Как правильно перехватить любое исключение?

Иерархия исключений - дерево наследуемых классов, составляющие порядок их обработки. Первыми на очереди обработки находятся выходы из программы (SystemExit, KeyboardInterrupt, GeneratorExit). Следом после них обрабатываются алгоритмические ошибки, например арифметические (деление на ноль), ошибки импорта библиотек, ошибки памяти, доступа к файлам, синтаксические ошибки. Самыми последними в очереди обработки находятся предупреждения о возможных ошибках.

Для перехватывания любой ошибки используется конструкция:

try:

# any code

except Exception as e: # Перехват ошибок всех типов

# действия при ошибке, например, ее вывод

25. Что такое иерархия исключений в python? Объяснить принцип ее построения. Реализация собственных исключений в python.

То же, что и в 24

Пользовательские исключения позволяют увеличить гибкость процесса обработки ошибок в рамках той предметной области, для которой написана программа. Для реализации собственного типа исключения необходимо создать класс, являющийся наследником от одного из классом исключений.