Форум сайта python.su
Разбираю ГОСТ, который описывает классы для построения моделей в электроэнергетике.
ГОСТ Р 58651.2-2019
П. 4.1. описывает классы, ключевой из которых IdentifiedObject (из него наследуется большинство классов)
П. 4.2. описывает дополнительный класс Name
Создадим их, используя атрибуты, описанные в п. 5.1 :
import uuid class IdentifiedObject: '''Идентифицирующий класс - обеспечивает идентификацию и набор наименований для наследуемых классов name - Наименование объекта информационной модели Если объект модели имеет диспетчерское наименование, то указывается диспетчерское наименование. aliasName - Дополнительное наименование идентифицируемого объекта description - Описание объекта информационной модели mRID - Глобальный уникальный идентификатор объекта информационной модели Тип представляет собой 16-байтный (128-битный) номер в шестнадцатеричной системе счисления, как определено в ГОСТ Р ИСО/МЭК 9834-8. ''' def __init__(self, name: str, aliasName=None, description=None, mRID=None): self.name = name self.aliasName = aliasName self.description = description self.mRID = uuid.UUID() if mRID == None else self.mRID = mRID class Name: '''Типизированное дополнительное наименование ''' pass
Офлайн
ИХМО ты должен реализовать модель в виде SQL таблиц и реализовать связи (ассоциации) между ними. Если ты будешь использовать ORM, то сможешь определить эти таблицы в виде python-классов.
> Как вы понимаете “ассоциации классов”
У тебя же есть ссылка на ГОСТ Р 58651.1. Там дан ответ на этот вопрос.
ассоциация: Связь между классами, определяющая смысловое взаимоотношение между ними.
Офлайн
Спасибо, тоже думал про SQL, но в ГОСТ вроде нигде базы данных не упоминаются…
С ORM ранее сталкивался только в Джанго. Нашел вариант с библиотекой peewee - https://habr.com/ru/post/322086/
Получается, что на каждый экземпляр IdentifiedObject могут ссылаться от 0 до бесконечности экземпляров Name - условно у одного объекта может быть куча названий, не смотря на официальное название - атрибут Name…
Хм, либо в атрибут Name поместить список с экземплярами класса Name, которые на него ссылаются?
Офлайн