TGViewer
Python вопросы с собеседований Python вопросы с собеседований @python_job_interview · 24.9K subscribers
Post #554 3.68K
🖥 Что такое DRY, как я могу применить его через ООП или FP?

DRY - это принцип разработки, который означает "Don't Repeat Yourself" (не повторяйся). В контексте программирования, DRY означает, что любой фрагмент кода должен иметь только один источник истины, и он должен быть легко доступен и изменяем. Это уменьшает количество дублирующегося кода и упрощает процесс сопровождения и изменения кода.

Через ООП или ФП, можно применять принцип DRY следующим образом:

ООП: используйте наследование, полиморфизм и абстракцию для организации кода. Вынесите общие методы и свойства в родительские классы, а для каждого подкласса определите только те функции, которые отличают его от других.

ФП: используйте функции высшего порядка, замыкания и лямбда-выражения. Выносите общие функции в модули или библиотеки, и переиспользуйте их при необходимости.

Вот пример того, как ООП можно использовать для применения принципов DRY:


class Person:
def __init__(self, name, age):
self.name = name
self.age = age

def introduce(self):
print(f"My name is {self.name} and I am {self.age} years old.")

class Student(Person):
def __init__(self, name, age, major):
super().__init__(name, age)
self.major = major

def introduce(self):
super().introduce()
print(f"I am majoring in {self.major}.")

class Teacher(Person):
def __init__(self, name, age, department):
super().__init__(name, age)
self.department = department

def introduce(self):
super().introduce()
print(f"I teach in the {self.department} department.")


Класс Person содержит общие атрибуты и поведение для всех людей в системе. Классы Student и Teacher наследуют от Person и добавляют свои определенные атрибуты и поведение. Таким образом, мы избегаем дублирования кода таких атрибутов, как имя и возраст, или таких методов, как внедрение.

Используя ООП и наследование, мы можем эффективно применять принципы DRY и сделать код более удобным в сопровождении и расширяемым. Точно так же вы можете использовать функции и композицию более высокого порядка в FP для достижения тех же целей.

@python_job_interview
  • 👍 17
  • ❤ 6
  • 🔥 5
More from @python_job_interview
  1. Sep 29, 2026🌟 OpenScience: персональный учёный с режимом автономных экспериментов Стартап Synthetic S…
  2. Sep 28, 2026Миниатюра из фотографии за 4 строки Python 🐍 from PIL import Image with Image.open("my_im…
  3. Sep 26, 2026Octop - open-source платформа, где можно запускать сразу несколько AI-агентов для себя, се…
  4. Sep 23, 2026Визуализация данных на Python: 10 лучших примеров с кодом Визуализация данных на Python -…
  5. Sep 22, 2026Как правильно получить случайное число в Python Если нужен диапазон от 1 до 100 включитель…
  6. Sep 19, 2026✔️ Кто подключился к вашей сети? NetAlertX обнаруживает устройства и уведомляет об изменен…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →