From bcaa0a47b947b33927ecf9b7b3db95fe2ab7d982 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=92=D0=B0?=
 =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=82=D0=B8=D0=BD=D0=BE=D0=B2=D0=B8=D1=87=20?=
 =?UTF-8?q?=D0=96=D0=B5=D0=B1=D1=80=D0=B8=D0=BA=D0=BE=D0=B2?=
 <zhebrikov@noreply.localhost>
Date: Wed, 24 Apr 2024 11:29:19 +0900
Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?=
 =?UTF-8?q?=D1=8C=20less8.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 less8.md | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 81 insertions(+)
 create mode 100644 less8.md

diff --git a/less8.md b/less8.md
new file mode 100644
index 0000000..02a6683
--- /dev/null
+++ b/less8.md
@@ -0,0 +1,81 @@
+[Ссылка на урок](https://youtu.be/v3U6SGj2l_Q?si=bOMRzo_OsgBnto0K)
+
+Наследование в Python
+Создадим базовый класс “Справочник”
+
+from random import randint
+from uuid import uuid4
+
+
+# Наследование
+class Catalog:
+
+    def get_object(self):
+        print("Получаем из базы: {}".format(self.__class__.__name__))
+
+    def write(self):
+        print("Записываем в базу: {}".format(self.__class__.__name__))
+
+    def delete(self):
+        print("Удаляем из базы: {}".format(self.__class__.__name__))
+
+    @staticmethod
+    def search_by_ref(ref):
+        return "Ищем в базе по ссылке {}".format(ref)
+Создадим класс “Справочники” с инициализацией экземпляра класса необходимыми атрибутами объекта и наследуемся от класса “Справочник”
+
+class Catalogs(Catalog):
+
+    def __init__(self, description=''):
+        self.code = randint(1, 1000)
+        self.description = description
+        self.deletion_mark = False
+        self.ref = uuid4()
+
+    def __str__(self):
+        return "Код {} Наименование {} Ссылка {}".format(self.code, self.description, self.ref)
+Создадим 2 класса “Товары” и  “Партнеры”. Оба наследуются от “Справочники”. В классах добавляем необходимые реквизиты для этих видов и при необходимости переопределяем методы родительских классов.
+
+class Products(Catalogs):
+
+    def __init__(self, description=''):
+        super(Products, self).__init__(description)
+        self.image = None
+
+    def write(self):
+        # Можно проверить на корректность введеных данных
+        if self.image is not None:
+            super().write()
+        else:
+            print("Обязательно добавьте изображение")
+
+
+class Partner(Catalogs):
+
+    def __init__(self):
+        super(Partner, self).__init__()
+        self.inn = ""
+        self.kpp = ""
+Примеры создания экземпляров классов
+
+table = Products('Стол дуб')
+print(table)
+table.write()
+
+table2 = Products()
+table2.description = 'Стол сосна'
+table2.image = 'Изображение'
+print(table2)
+table2.write()
+
+ooo_mayak = Partner()
+ooo_mayak.description = 'ООО Маяк'
+ooo_mayak.inn = '123'
+ooo_mayak.kpp = '465768'
+print(ooo_mayak)
+ooo_mayak.write()
+Пример вызова статического метода класса
+
+print(Catalog.search_by_ref('734235ee-b821-4467-a905-ffb5a86a2ab0'))
+
+[Вернуться на главную](readme.md)
\ No newline at end of file