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?= 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