Python с нуля к первым деньгам за коды
320 subscribers
91 photos
44 videos
154 links
Download Telegram
#SOLID #Python #OOP #L #Программирование #VSCode #Кодинг #Продукт
🐧 L — Liskov Substitution Principle (Принцип подстановки Лисков)

Подклассы — не враги, а помощники. Если их нельзя подставить — ты сделал что-то не так. VS Code + SOLID = меньше багов, больше денег.

# Плохо: пингвин — птица, но не может летать
class Bird:
def fly(self):
print("Я лечу!")

class Penguin(Bird):
def fly(self):
raise Exception("Пингвины не летают!") # 💥 Нарушение LSP


➡️ Следующий пост: как исправить — через интерфейсы

Знаешь с кем поделиться?
👍1
#SOLID #Python #OOP #L #GitHub #Архитектура #Программист #PyCharm
LSP — выдели интерфейсы поведения

Код, который не ломается при расширении — код, за который платят. PyCharm + интерфейсы = профессиональный уровень.

from abc import ABC, abstractmethod

class Bird(ABC): pass

class Flyable(ABC):
@abstractmethod
def fly(self): pass

class Sparrow(Bird, Flyable):
def fly(self):
print("Лечу как воробей!")

class Penguin(Bird): # Не летает — и не обязан!
pass

# Теперь можно безопасно подставлять
def make_bird_fly(bird: Flyable):
bird.fly()

sparrow = Sparrow()
make_bird_fly(sparrow) # Работает
# make_bird_fly(Penguin()) — даже не пройдёт типизацию!


➡️ Следующий пост: I — Interface Segregation Principle 🧩

Знаешь с кем поделиться?