WorksheetsВопросы по Python
Total questions: 148
Worksheet time: 1hrs 14mins
Какова цель метода __init__?
Удалить объект
Инициализировать объект
Унаследоваться от другого класса
Вывести значения
Какой из этих вариантов используется для обращения к экземпляру самого себя внутри метода класса?
self
this
cls
me
Какой из следующих вариантов обозначает закрытый атрибут в Python?
*name
**name
name**
name*
Какой метод автоматически вызывается при создании объекта?
__str__
__new__
__init__
__call__
Как правильно определить класс с именем 'Car'?
def Car:
class Car():
object Car():
Car = class()
Выберите допустимые объявления атрибутов экземпляра.
self.name = name
name = self.name
self_name = name
this.name = name
Какие из следующих являются допустимыми модификаторами видимости в Python?
Public
Protected (_)
Private (__)
Global
Для чего используется наследование в Python?
Чтобы переопределить встроенные функции
Чтобы передать атрибуты классу
Чтобы вывести новые классы из существующих
Чтобы скрыть данные класса
Какая функция используется для вызова метода родительского класса?
parent()
super()
base()
main()
Что означает MRO в Python?
Метод Run Order
Метод Разрешения Порядка
Множественный Результат Вывода
Главный Корень Порядка
Какой тип наследования приводит к проблеме алмаза?
Одиночный
Множественный
Многоуровневый
Иерархический
Какое ключевое слово используется для наследования от базового класса?
extends
inherits
super
class Derived(Base):
Выберите правильный пример множественного наследования.
class C(A, B):
class C(B -> A):
class C = A + B:
class C inherit A, B
Выберите все классы, участвующие в MRO.
Базовый класс
Производный класс
Соседний класс
Интерфейсный класс
Каковы преимущества использования super() в наследовании?
Вызывает конструктор базового класса
Избегает жесткого кодирования имен классов
Улучшает поддерживаемость
Замедляет производительность
Что позволяет полиморфизм в ООП?
Использовать методы с одинаковыми именами для разных классов
Перегружать конструкторы
Создавать несколько экземпляров
Скрывать данные
Какой метод может быть переопределен в подклассе?
Любой метод
Только статические методы
Только закрытые методы
Только методы класса
Какой модуль предоставляет абстрактные базовые классы в Python?
abc
abstract
base
interface
Какой декоратор используется для объявления абстрактного метода?
@classmethod
@abstractmethod
@staticmethod
@override
Полиморфизм может быть достигнут через:
Переопределение метода
Скрытие метода
Цепочка методов
Дублирование метода
Выберите все, что относится к абстрактным классам:
Могут содержать абстрактные методы
Не могут быть инстанцированы
Должны переопределить все методы
Определены с использованием модуля 'abc'
Какое из этих утверждений описывает полиморфизм?
Один интерфейс, несколько реализаций
Только одиночное наследование
Несколько классов с одинаковыми методами
Переопределение методов
Что такое инкапсуляция в ООП?
Скрытие внутреннего состояния
Доступ к закрытым данным
Использование нескольких классов
Вызов методов суперкласса
Какое ключевое слово используется для создания свойства в Python?
@getter
@access
@property
@value
Какова цель методов получения?
Изменить данные
Вернуть значения атрибутов
Инициализировать класс
Установить значения свойства
Выберите все преимущества использования @property:
Контролируемый доступ
Валидация
Чище синтаксис
Множественное наследование
Какие декораторы обычно используются для контролируемого доступа?
@property
@
@classmethod
@staticmethod
Какое из этих утверждений демонстрирует инкапсуляцию?
Закрытые атрибуты
Методы получения и установки
Наследование
Глобальные переменные
Как можно определить метод установки в Python?
@property_name.setter
@setter.property
@property.setter
@setproperty
Каков будет вывод?
class A: def process(self): print("A.process") class B(A): def process(self): super().process() print("B.process") class C(A): def process(self): super().process() print("C.process") class D(B, C): def process(self): super().process() print("D.process") d = D() d.process()
A.process B.process C.process D.process
A.process C.process B.process D.process
D.process B.process C.process A.process
B.process C.process D.process A.process
Какие методы будут выполнены в порядке?
class Base: def call(self): print('Base') class Left(Base): def call(self): super().call() print('Left') class Right(Base): def call(self): super().call() print('Right') class Sub(Left, Right): def call(self): super().call() print('Sub') s = Sub() s.call()
Base → Right → Left → Sub
Base → Left → Right → Sub
Sub → Left → Right → Base
Base → Right → Sub → Left
Каков будет следующий вывод?
class Parent: value = 100 class Child(Parent): def __init__(self): self.value = 200 c = Child() print(c.value) print(Child.value) print(Parent.value)
200 200 100
200 100 100
100 200 100
200 100 200
Определите ошибку в этом коде:
from abc import ABC, abstractmethod class Shape(ABC): @abstractmethod def area(self): pass class Circle(Shape): pass c = Circle() print(c.area())
Нет ошибки, вывод None
Circle должен реализовать метод area()
Класс Shape неверен
Конструктор circle() отсутствует аргументы
Что будет напечатано?
class X: def __init__(self): self.__data = 5 def show(self): print(self.__data) class Y(X): def __init__(self): super().__init__() self.__data = 10 y = Y() y.show()
5
10
Ошибка
Ничего
Каков будет вывод следующего кода?
class Animal: def speak(self): print("Animal speaks") class Dog(Animal): def speak(self): print("Dog barks") d = Dog() d.speak()
Animal speaks
Dog barks
Ошибка
Ничего
Какой атрибут будет у объекта 'p' после этого кода?
class Person: def __init__(self, name): self.name = name p = Person("Alice")
na
Какой атрибут будет у объекта 'p' после этого кода?
имя
self
p
Алиса
Какой метод будет вызван при создании объекта?
__init__
hello
__new__
self
Что выведет следующий код?
A
B
A B
B A
Что будет напечатано?
4
Ошибка
Ничего
Неопределено
Какая строка правильно создает приватный атрибут?
self.hidden
self._hidden
self.__hidden
hidden
Каков порядок разрешения методов для этой иерархии?
D → B → A → C
D → B → C → A
D → C → B → A
D → A → B → C
Какой декоратор используется для определения свойства-геттера?
@getter
@property
@age
@get_age
Что делает следующий код?
Печатает 5
Ошибка
Печатает None
Печатает _value
Что произойдет?
Собака бегает
Ошибка из-за абстрактного метода
Ничего
Собака гуляет
Какой парадигме программирования уделяется внимание потоку данных и избеганию изменения состояния?
Процедурная
Функциональная
Объектно-ориентированная
Декларативная
Какой концепт ООП ограничивает прямой доступ к данным и поведению объекта?
Наследование
Компоновка
Инкапсуляция
Полиморфизм
Класс лучше всего описывается как:
Переиспользуемая функция
Чертеж для создания объектов
Специальная структура цикла
Контейнер методов
Когда один класс наследует функции от другого, это называется:
Абстракция
Инкапсуляция
Наследование
Рефлексия
Какой концепт позволяет методам вести себя по-разному в зависимости от объекта?
Наследование
Перегрузка
Полиморфизм
Затенение
Что определяет экземпляр класса в памяти?
Имя класса
Объект
Атрибут
Модуль
Какая функция инициализирует атрибуты объекта при инстанцировании?
del
init
call
setup()
Какое ключевое слово ссылается на текущий объект в методах класса?
self
this
obj
ref
Какое сочетание символов обычно используется для приватных атрибутов?
--name
name__
__name
_name
Как можно определить переменную, видимую для всех экземпляров?
self.variable
_variable
ClassName.variable
var = 0 в init
Какая функция возвращает читаемую строку объекта?
describe
string
str
text
Как дочерние классы могут получить доступ к защищенным членам суперкласса?
Через импорты
Используя super ()
Через приватный доступ
С помощью декораторов
Какая функция позволяет вызвать метод суперкласса?
parent.method()
base ()
super ()
root.method()
Если класс наследует от более чем одного класса, это называется:
Слияние интерфейсов
Многоуровневая иерархия
Множественное наследование
Глубокая ссылка
Что помогает определить MRO?
Скорость создания объектов
Последовательность вызова методов
Оптимизация ссылок в памяти
Рекурсивные вызовы классов
Какая проблема возникает из-за сложного множественного наследования?
Затенение
Чрезмерное использование методов
Алмазная проблема
Рекурсивные конструкторы
Какой метод используется первым при инстанцировании подклассов?
вызов родителя
init дочернего
настройка
build()
Можно ли ограничить множественное наследование в Python?
Нет, это всегда разрешено
Только через метаклассы
Да, с помощью приватного наследования
Да, используя политику одного базового класса
Изменение поведения метода в дочернем классе называется:
Скрытие
Переопределение
Инверсия
Переключение
Чтобы заставить методы реализовываться в подклассах, используйте:
@enforce
@abstractmethod
@virtual
override()
Какой декоратор делает метод абстрактным внутри класса?
@abstractmethod
@pure
@virtualmethod
@interface
Можно ли создавать экземпляры абстрактных классов напрямую?
Только с переопределением init
Нет
Да, если у него нет методов
Да, с помощью трюков метакласса
Что делает полиморфизм полезным?
Снижает количество подклассов
Обеспечивает единые интерфейсы
Ограничивает видимость методов
Предотвращает переопределения
Когда разные классы реализуют один и тот же интерфейс, это называется:
Полиморфизм
Абстракция
Компоновка
Перегрузка
Какой вывод даст этот код?
A
B
Ошибка
Ничего
В каком случае атрибут считается приватным?
data
_temp
__secret
Все они
Интерфейсы в Python реализуются через:
Абстрактные базовые классы
Декораторы
Шаблоны классов
Только метаклассы
Чтобы избежать замены методов в дочерних классах, используйте:
@final (Python 3.8+)
@readonly
Такой защиты не существует
Используйте префиксы подчеркивания
Что вызывает ошибку здесь?
class Parent:
def __init__(self):
self.x = 1
class Child(Parent):
Что означает "утка типирования"?
Интерфейсные переменные
Совместимость объектов определяется поведением
Типизация на уровне компилятора
Статическая проверка интерфейсов
Какой принцип здесь нарушен?
Полиморфизм
Абстракция
Инкапсуляция
Компоновка
Какой метод выполняется при удалении объекта?
__exit__
__destroy__
__del__
__remove__
Что будет напечатано?
От объекта
От класса
Ничего
Ошибка
Какой декоратор позволяет получить доступ к методу из класса, а не только из экземпляров?
@classmethod
@staticmethod
@abstractmethod
@getmethod
Какова основная цель инкапсуляции в ООП?
Сделать все члены класса общедоступными
Скрыть детали реализации от внешнего доступа
Предотвратить наследование классов
Улучшить скорость выполнения кода
Какой символ указывает на приватный атрибут в Python?
Без префикса
Единичное подчеркивание (_)
Двойное подчеркивание (__)
Звездочка (*)
Что делает декоратор @property?
Заставляет метод действовать как метод класса
Преобразует метод в атрибут только для чтения
Предотвращает переопределение метода
Помечает метод как устаревший
Как вы определяете сеттер для свойства с именем 'price'?
@price.setter
@setter(price)
@property.setter
@set_price
Какой из этих атрибутов является защищенным в Python?
self.name
self._name
self.__name
self.name*
Какой магический метод вызывается функцией print()?
__repr__
__str__
__print__
__display__
Какова цель метода __len__?
Сравнить размеры объектов
Вернуть длину объекта
Инициализировать счетчики объектов
Обеспечить преобразование строк
Какой магический метод вызывается при использовании оператора +?
__plus__
__add__
__sum__
__concat__
Что позволяет делать метод __call__?
Сравнение объектов
Инициализация объектов
Вызывать объекты как функции
Сериализация объектов
Какой метод реализует сравнение ==?
__eq__
__cmp__
__same__
__compare__
Какова правильная структура для обработки исключений?
try -> catch -> finally
try -> except -> finally
attempt -> handle -> ensure
begin -> rescue -> end
Какой блок всегда выполняется, даже если возникает исключение?
try
except
finally
else
Как создать класс пользовательского исключения?
class MyError(Exception)
def MyError()
исключение MyError:
новый Exception("MyError")
Какое исключение возникает, когда ключ не найден в словаре?
ValueError
KeyError
IndexError
AttributeError
Что делает ключевое слово raise?
Перехватывает исключение
Создает новый тип исключения
Запускает исключение вручную
Заглушает исключение
Какой режим файла открывает для записи без перезаписи?
"w"
"r"
"a"
"x"
Что делает json.loads()?
Преобразует JSON в объект Python
Преобразует объект Python в JSON
Читает JSON из файла
Проверяет синтаксис JSON
Какой модуль обрабатывает бинарную сериализацию?
json
pickle
yaml
marshal
Как правильно прочитать все строки из файла?
file.read()
file.readlines()
file.line()
file.get_lines()
Что такое сериализация?
Сортировка данных по алфавиту
Преобразование объектов в форматы, пригодные для хранения
Шифрование конфиденциальных данных
Сжатие размеров файлов
Какой метакласс по умолчанию в Python?
object
type
class
meta
Какой метод вызывается первым при создании экземпляра?
__init__
__new__
__call__
__create__
Что делает type ('MyClass', (), {})?
Проверяет тип переменной
Создает новый класс динамически
Преобразует значения в строки
Сравнивает два класса
Когда выполняется __new__?
Перед __init__
После __init__
Вместо __init__
Во время разрушения класса
Что лучше всего описывает метакласс?
Суперкласс для всех исключений
Класс, который создает другие классы
Декорированный метод
Абстрактный базовый класс
Что гарантирует паттерн Singleton?
Существует только один экземпляр
Несколько взаимозаменяемых алгоритмов
Уведомления один-ко-многим
Добавление динамического поведения
Какой паттерн делегирует создание объектов подклассам?
Наблюдатель
Фабричный метод
Декоратор
Стратегия
В паттерне Наблюдатель, кто получает обновления?
Основной субъект
Зарегистрированные наблюдатели
Фабричные объекты
Классы-декораторы
Что делает паттерн Декоратор?
Динамически добавляет обязанности
Обеспечивает единственный экземпляр
Создает семейства объектов
Инкапсулирует алгоритмы
Какой паттерн выбирает алгоритмы во время выполнения?
Singleton
Стратегия
Наблюдатель
Фабрика
Какова цель методов получения?
Чтобы напрямую изменять приватные атрибуты
Чтобы безопасно возвращать значения атрибутов
Чтобы инициализировать экземпляры классов
Чтобы удалять свойства объектов
Какой магический метод предоставляет "официальное" строковое представление?
__str__
__repr__
__print__
__info__
Что произойдет, если вы не обработаете исключение?
Программа продолжает тихо
Программа завершается с ошибкой
Исключение автоматически регистрируется
Подставляются значения по умолчанию
Какое главное преимущество использования JSON по сравнению с pickle?
Лучшее выполнение
Языковая независимость
Поддерживает бинарные данные
Меньшие размеры файлов
Какой паттерн уведомляет зависимых о изменениях состояния?
Singleton
Стратегия
Наблюдатель
Фабрика
Какова основная цель паттерна Singleton?
Разрешить создание нескольких экземпляров класса
Обеспечить существование только одного экземпляра класса
Определить взаимозаменяемые алгоритмы
Конструировать сложные объекты
Какова основная цель паттерна Singleton?
Позволить создание нескольких экземпляров класса
Обеспечить существование только одного экземпляра класса
Определить взаимозаменяемые алгоритмы
Конструировать сложные объекты поэтапно
Какой паттерн позволяет динамически добавлять новые обязанности объекту во время выполнения?
Стратегия
Наблюдатель
Декоратор
Фабричный метод
Паттерн Фабричный метод инкапсулирует создание объектов с помощью:
Глобальной функции
Статического фабричного класса
Метода, который возвращает экземпляры различных подклассов
Декоратора класса
В паттерне Наблюдатель субъект уведомляет наблюдателей об изменениях состояния, вызывая:
Прямой доступ к атрибутам
Обратные вызовы наблюдателя
Выброс исключений
Опрос в цикле
Паттерн Стратегия полезен, когда вам нужно:
Создать экземпляры синглтона
Выбрать алгоритм во время выполнения
Обеспечить строгую иерархию классов
Отслеживать изменения состояния объекта
Какой метод в модуле threading запускает новый поток?
run()
start()
init()
spawn()
Какой замок позволяет одному и тому же потоку захватывать его несколько раз без блокировки?
Lock
RLock
Semaphore
Event
Что означает GIL в Python?
Глобальная блокировка интерпретатора
Общий уровень экземпляра
Глобальный загрузчик экземпляров
Универсальный интеграционный уровень
Чтобы обойти GIL и достичь истинного параллелизма, вы должны использовать:
threading
asyncio
multiprocessing
concurrent.futures
Чтобы защитить общие данные от условий гонки, вы должны обернуть доступ в:
блок with open
блок with lock
блок try/except
цикл for
Если два потока изменяют одну и ту же переменную без синхронизации, это приводит к:
Взаимной блокировке
Условиям гонки
Утечке памяти
Ошибка типа
Какой вызов ожидает завершения потока?
thread.join()
thread.wait()
thread.stop()
thread.sync()
На Windows, метод запуска по умолчанию для многопроцессности:
fork
spawn
forkserver
thread
В Flask, если не указано, маршрут принимает какой HTTP метод по умолчанию?
GET
POST
PUT
DELETE
Какой класс CBV Django отображает список экземпляров модели?
DetailView
ListView
FormView
TemplateView
Чтобы создать новый проект Django, вы выполняете:
django-admin startapp
django-admin startproject
python manage.py initproject
flask new project
В SQLAlchemy (Flask), сессии создаются через:
Session()
sessionmaker()
engine.connect()
create_session()
В каком файле Django определены маршруты URL?
models.py
views.py
urls.py
settings.py
Для чего используется Blueprint в Flask?
Группировка связанных маршрутов и шаблонов
Управление статическими файлами
Настройка базы данных
Запуск фоновых задач
Как называется движок шаблонов по умолчанию в Django?
Jinja2
Mustache
Язык шаблонов Django
Mako
Чтобы создать и применить миграции в Django, вы выполняете:
makemigrations затем migrate
migrate затем makemigrations
db init
syncdb
Какой UML диаграмма показывает классы, их атрибуты, методы и отношения?
Диаграмма случаев использования
Диаграмма активности
Классовая диаграмма
Диаграмма последовательности
Какой этап обычно приходит первым в разработке программного обеспечения?
Тестирование
Анализ требований
Реализация
Развертывание
Какое расширение Sphinx автоматически документирует модули Python?
sphinx.ext.autodoc
sphinx.ext.viewcode
sphinx.ext.napoleon
sphinx.ext.todo
Что в первую очередь предоставляет Непрерывная интеграция (CI)?
Автоматизированная сборка и тестирование
Ручной обзор кода
Чат в реальном времени
Только скрипты развертывания
Чтобы проверить порядок разрешения методов (MRO) в Python, вы можете проверить:
Class.__mro__
class.mro()
inspect.mro(class)
Все вышеперечисленное
Какая функция сериализует объект Python в строку формата JSON?
json.dumps()
pickle.dumps()
marshal.dumps()
yaml.dump()
Что будет напечатано? class X: def run(self): print("X") class Y(X): def run(self): print("Y") super().run() class Z(X): def run(self): super().run() print("Z") class W(Y, Z): def run(self): super().run() print("W") w = W() w.run()
Y X Z W
X Y Z W
Y Z X W
X Z Y W
Что будет напечатано? class A: def __init__(self): print("A", end="") class B(A): def __init__(self): print("B", end="") super().__init__() class C(A): def __init__(self): super().__init__() print("C", end="") class D(B, C): def __init__(self): print("D", end="") super().__init__() d = D()
DBAC
DBCA
DABC
DCBA
Что будет напечатано? class A: x = "A" class B(A): x = "B" class C(A): pass class D(C, B): pass print(D.x)
D
A
B
C
Ошибка
Что будет напечатано? class A: def __init__(self): self.value = 1 class B(A): def __init__(self): self.value = 2 super().__init__() b = B() print(b.value)
1
2
3
Ошибка
Какой командой управления Django запускаются модульные тесты?
manage.py runserver
manage.py test
manage.py migrate
manage.py makemigrations
Какой инструмент вы можете использовать для проверки стиля кода Python перед экзаменом?
pytest
pylint
unittest
coverage
