📝 Задания для самопроверки
⚡ Кратко
Выполните задания по порядку: сначала базовые, затем практические. Перед просмотром решений проверьте код на нескольких примерах.
Вопрос 1. MRO
Какой порядок будет у класса D?
class A: pass
class B(A): pass
class C(A): pass
class D(B, C): pass
- a. D → C → B → A → object
- b. D → B → A → C → object
- c. D → B → C → A → object
- d. D → A → B → C → object
Вопрос 2. Ошибка в коде
Найдите ошибку:
class AuthMixin:
def login(self):
print(f"{self.username} вошёл.")
class User(AuthMixin):
pass
user = User()
user.login()
Вопрос 3. hasattr()
Что делает функция hasattr()? Приведите пример использования в миксине.
Вопрос 4. Уровни доступа
Укажите верные утверждения:
- a. Миксин обязательно должен содержать
__init__(). - b.
super()в множественном наследовании учитывает порядок MRO. - c. Метод из ближайшего родителя переопределяет такие же методы других родителей.
- d.
super().method()всегда обращается кobject.
Вопрос 5. Агрегация
Что характерно для агрегации?
- a. Внешний объект управляет созданием вложенного элемента.
- b. Внутренний элемент создаётся отдельно и передаётся извне.
- c. Вложенный элемент полностью исчезает при удалении внешнего объекта.
- d. Внутренний элемент обязан быть вложенным классом.
Проверка понимания
Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.
Вопрос 1
Как лучше использовать summary-урок?
Вопрос 2
Что показывает хороший результат после повторения блока?
Вопрос 3
Какой вопрос стоит задать себе после каждого ответа?
Вопрос 4
Какой стиль имён переменных обычно рекомендует PEP 8?
Вопрос 5
Зачем использовать f-strings в современном Python?
Вопрос 6
Когда полезен ранний возврат из функции?
Вопрос 7
Что делает аннотация типа в Python?
Вопрос 8
Как лучше обрабатывать ожидаемую ошибку преобразования?