Python с нуля к первым деньгам за коды
320 subscribers
91 photos
44 videos
154 links
Download Telegram
Пора сформулировать итоговый Telegram-пост по теме "Введение в ООП".

🌟 *Итог: Введение в ООП — как думать как программист*

> _"Объектно-ориентированное программирование — это не про синтаксис. Это про то, как организовать мышление."_
> — Алан Кей

Что ты себе позволяешь? Позволяй больше, ты будущий мастер кода! 👋
Ты прошёл путь от вопроса *"Что такое класс?"* до создания своих первых объектов. Пришло время собрать всё воедино.
Сила в единении.
---

🎯 *Что такое ООП?*
Object-Oriented Programming (ООП) — это способ писать код, *похожий на реальный мир*.
Вместо набора функций — ты создаёшь **объекты**, которые живут, действуют и взаимодействуют.

---

🧱 *4 кита ООП:*

1️⃣ **Класс** — шаблон, "чертёж".
→ `class Кот:`

2️⃣ **Объект** — экземпляр класса.
→ `мурзик = Кот("Мурзик")`

3️⃣ **Атрибуты** — свойства объекта.
→ `self.имя`, `self.возраст`

4️⃣ **Методы** — действия объекта.
→ `мяукать()`, `спать()`

---

🐍 *Пример: Кот в коде*

```python
class Кот:
def __init__(self, имя, цвет):
self.имя = имя
self.цвет = цвет
self.сытость = 50

def мяукать(self):
print(f"{self.имя}: Мяу! Я голоден!")

def кушать(self):
if self.сытость < 100:
self.сытость += 20
print(f"{self.имя} поел. Сытость: {self.сытость}%")
else:
print(f"{self.имя} уже сыт!")

# Создаём объект
бусинка = Кот("Бусинка", "рыжий")
бусинка.мяукать()
бусинка.кушать()


---

🚀 *Почему это важно?*

- Код становится понятным и структурированным
- Легко масштабировать (100 котов? Без проблем!)
- Можно повторно использовать (один класс — тысячи объектов)
- Подготовка к большим проектам: игры, веб-приложения, боты

---

💡 *Совет:*
Не просто копируй код.
Попробуй:
- Добавить метод играть()
- Уменьшать сытость со временем
- Создать второго кота и заставить их "взаимодействовать"

---

🎯 *Ты уже не новичок.*
Ты — создатель миров.
Каждый класс — новый персонаж, машина, герой или бот.
ООП — твой первый шаг к большим проектам.

🔁 Закрепи знания:
👉 Напиши класс Собака, Студент или Герой_из_игры

---

📌 Следующая остановка: Наследование, инкапсуляция, полиморфизм — мощь ООП на максимуме!

#ООП #Python #Программирование #ОбучениеПрограммированию #IT #Классы #Объекты #БлогДляНовичков


Знаешь с кем поделиться?
This media is not supported in your browser
VIEW IN TELEGRAM
Смотри на жизнь всегда с улыбкой и ни когда не унывай!

Каждая печаль учит нас ценить счастье и видеть возможности там, где раньше были только сомнения.

Не позволяй печали затмить твои мечты — впереди ещё столько дорог, по которым стоит идти с улыбкой и надеждой.

Пусть прошлое приносит уроки, а не сожаления; будущее всегда открыто для тех, кто смотрит на него с оптимизмом.

Знаешь с кем поделиться?
#Дроны #Беспилотники #ГЛОНАС

За счет уже реализованной интеграции «ЭРА-ГЛОНАСС» и СППИ создаваемая единая система идентификации принимает данные и от устройств АЗН-В, и от различных трекеров (GSM, спутниковых, гибридных — вообще любых), и от цифровых платформ пользователей, коммерческих систем.

Госинформсистема «ЭРА-ГЛОНАСС» объединит разрозненные сегодня решения, станет комплексированной платформой для идентификации. «ЭРА-ГЛОНАСС» — система, а не отдельные трекеры.


Знаешь с кем поделиться?
This media is not supported in your browser
VIEW IN TELEGRAM
ИИ-министр Албании по госзакупкам «Диэлла» впервые выступила перед парламентом

Диэлла заявила, что была «оскорблена» заявлениями депутатов оппозиции, которые назвали её "неконституционной".
SOLID — это 5 принципов объектно-ориентированного проектирования, которые помогают писать:

Чистый и понятный код
Гибкий и расширяемый код
Код, который не ломается при изменениях
Код, который принимают на ревью и за который платят 💰
#SOLID #Python #OOP #Программирование #Кодинг #Архитектура #PyCharm #Новичок
🎯 Что такое SOLID и зачем он тебе — даже если ты только начал

Не просто буквы. Не просто теория. SOLID — твой фундамент как разработчика.
Пиши код, за который не стыдно — который легко читать, расширять и продавать.
PyCharm + GitHub + SOLID = твой путь от «hello world» к первой оплате за проект.


SOLID — это 5 принципов объектно-ориентированного проектирования, которые помогают писать:

Чистый и понятный код
Гибкий и расширяемый код
Код, который не ломается при изменениях
Код, который принимают на ревью и за который платят 💰


📌 S — Single Responsibility (Одна обязанность)
📌 O — Open/Closed (Открыт для расширения, закрыт для изменения)
📌 L — Liskov Substitution (Подстановка без последствий)
📌 I — Interface Segregation (Разделяй интерфейсы)
📌 D — Dependency Inversion (Зависимости — от абстракций)


🔥 В следующих 12 постах мы разберём каждый принцип на живых примерах на Python.
Ты увидишь:
→ Как выглядит "плохой" код
→ Как его улучшить по SOLID
→ Почему это важно для твоей карьеры


🚀 Готов учиться как профи?
Сохрани эту серию. Примени в своём проекте. Выложи на GitHub.
Первые деньги за код — начинаются с правильных привычек.

➡️ Следующий пост: S — Принцип единственной ответственности

https://t.me/PythonAndMoney/183
#SOLID #Python #OOP #CleanCode #S #Программирование #PyCharm #Карьера
🧱 S — Single Responsibility Principle (Принцип единственной ответственности)

От первого print() до первой зарплаты — начни с SOLID. Пиши код, который не стыдно выложить на GitHub. PyCharm + твои руки = твой первый продукт.

# Плохо: один класс — три обязанности
class Report:
def generate(self, data):
return f"Отчёт: {data}"

def save_to_file(self, report):
with open("report.txt", "w") as f:
f.write(report)

def send_email(self, report, email):
print(f"Отправка {report} на {email}")


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

Знаешь с кем поделиться?
#SOLID #Python #OOP #Архитектура #S #VSCode #Продукт #Разработчик
Как соблюсти SRP — дели и властвуй

Твой код — твой актив. Делай его читаемым, масштабируемым, продаваемым. VS Code + Git = твой путь к фрилансу.

# Хорошо: каждый класс — одна зона ответственности
class ReportGenerator:
def generate(self, data):
return f"Отчёт: {data}"

class ReportSaver:
def save_to_file(self, report, filename="report.txt"):
with open(filename, "w") as f:
f.write(report)

class EmailSender:
def send(self, content, to_email):
print(f"Отправлено '{content}' на {to_email}")

# Координатор
class ReportManager:
def __init__(self, generator, saver, sender):
self.generator = generator
self.saver = saver
self.sender = sender

def create_and_send(self, data, email):
report = self.generator.generate(data)
self.saver.save_to_file(report)
self.sender.send(report, email)


➡️ Следующий пост: O — Open/Closed Principle 🚪


Знаешь с кем поделиться?
#SOLID #Python #OOP #O #Кодинг #PyCharm #Программист #Фриланс
🚪 O — Open/Closed Principle (Открыт для расширения, закрыт для изменения)

Не переписывай код — расширяй его. Так работают профи. PyCharm + SOLID = твой путь к заказам на Upwork.

# Плохо: каждый новый тип — правим класс
class Discount:
def get_discount(self, customer_type):
if customer_type == "regular":
return 0.1
elif customer_type == "vip":
return 0.2
# elif customer_type == "new"? — снова правим!


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

Знаешь с кем поделиться?
#SOLID #Python #OOP #O #GitHub #Продукт #Карьера #Архитектура
OCP — используй абстракции и наследование

Твой код должен расти без боли. GitHub + SOLID = доверие клиентов и первые $.

from abc import ABC, abstractmethod

class Discount(ABC):
@abstractmethod
def get_discount(self):
pass

class RegularDiscount(Discount):
def get_discount(self):
return 0.1

class VIPDiscount(Discount):
def get_discount(self):
return 0.2

class Order:
def __init__(self, discount: Discount):
self.discount = discount

def final_price(self, total):
return total * (1 - self.discount.get_discount())


➡️ Следующий пост: L — Liskov Substitution Principle 🐧


Знаешь с кем поделиться?
#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 🧩

Знаешь с кем поделиться?
#SOLID #Python #OOP #I #Программирование #Кодинг #Продукт #VSCode
🧩 I — Interface Segregation Principle (Принцип разделения интерфейса)

Не заставляй классы реализовывать то, что им не нужно. VS Code + SOLID = чистый, понятный, продаваемый код.


# Плохо: один интерфейс на всё
class Worker(ABC):
@abstractmethod
def work(self): pass
@abstractmethod
def eat(self): pass # Робот не ест!

class Human(Worker):
def work(self): print("Работаю")
def eat(self): print("Ем")

class Robot(Worker):
def work(self): print("Работаю")
def eat(self): pass # Пустышка — грязно!

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

Знаешь с кем поделиться?
#SOLID #Python #OOP #I #GitHub #Фриланс #Архитектура #PyCharm
ISP — дроби интерфейсы на мелкие

Клиенты не должны зависеть от того, что они не используют. GitHub + SOLID = твоё портфолио, за которое платят.

from abc import ABC, abstractmethod

class Workable(ABC):
@abstractmethod
def work(self): pass

class Eatable(ABC):
@abstractmethod
def eat(self): pass

class Human(Workable, Eatable):
def work(self): print("Работаю")
def eat(self): print("Ем")

class Robot(Workable):
def work(self): print("Работаю")

# Теперь зависимости точные — нет мусора
def manage_worker(worker: Workable):
worker.work()


➡️ Следующий пост: D — Dependency Inversion Principle 🔁

Знаешь с кем поделиться?
#SOLID #Python #OOP #D #Программирование #Кодинг #Продукт #VSCode
🔁 D — Dependency Inversion Principle (Инверсия зависимостей)

Зависимости — от абстракций, не от конкретики. VS Code + SOLID = гибкий код, который легко продать.

# Плохо: зависимость от конкретного класса
class LightBulb:
def turn_on(self): print("Лампочка включена")

class Switch:
def __init__(self):
self.bulb = LightBulb() # Жёсткая привязка!

def operate(self):
self.bulb.turn_on()


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

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