Добавить less8.md
This commit is contained in:
parent
759248dd92
commit
bcaa0a47b9
|
@ -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)
|
Loading…
Reference in New Issue