Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Python: oop, encapsulation, inheritance, polymorphism, abstraction

Расскажи о принципах ООП в контексте Python

Этот вопрос проверяет понимание основных принципов объектно-ориентированного программирования и их применения в Python.

Короткий ответ

Основные принципы ООП:

  • Инкапсуляция (Encapsulation): объединение данных и методов, работающих с этими данными, внутри объекта.

  • Наследование (Inheritance): возможность одного класса использовать функционал другого.

  • Полиморфизм (Polymorphism): способность методов работать с разными типами данных.

  • Абстракция (Abstraction): скрытие деталей реализации и предоставление только необходимого интерфейса.

Длинный ответ

ООП основывается на четырёх ключевых принципах:

Инкапсуляция:

Объекты объединяют данные (атрибуты) и поведение (методы). Это позволяет скрыть внутреннюю реализацию и взаимодействовать с объектом только через его интерфейс.
Пример:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.__age = age  # Приватный атрибут

    def get_age(self):
        return self.__age

p = Person("Alice", 30)
print(p.get_age())  # 30

Наследование:

Позволяет одному классу наследовать свойства и методы другого. Это способствует повторному использованию кода.
Пример:

class Animal:
    def speak(self):
        print("I am an animal")

class Dog(Animal):
    def speak(self):
        print("I am a dog")

d = Dog()
d.speak()  # "I am a dog"
 

Полиморфизм:

Методы могут работать с разными типами объектов. Это позволяет писать более общий код.
Пример:

class Cat:
    def speak(self):
        print("Meow")

class Dog:
    def speak(self):
        print("Woof")

def make_sound(animal):
    animal.speak()

make_sound(Cat())  # "Meow"
make_sound(Dog())  # "Woof"

Абстракция:

Скрывает детали реализации, предоставляя пользователю только интерфейс.
Пример:

from abc import ABC, abstractmethod

class Shape(ABC):
    @abstractmethod
    def area(self):
        pass

class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius

    def area(self):
        return 3.14 * self.radius ** 2

c = Circle(5)
print(c.area())  # 78.5

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • Python

    Python

Ключевые слова

#oop

#encapsulation

#inheritance

#polymorphism

#abstraction

Подпишись на Python Developer в телеграм