Указание собственного параметра в диаграммах классов Python UML - PullRequest
2 голосов
/ 20 сентября 2019

Я знаю, что нет официальных стандартов UML для Python, но если я хочу указать параметры в методах класса, я должен указать параметр self?Или считать его принятым по умолчанию?Будем благодарны за любые аргументы за и против использования параметра self.

1 Ответ

1 голос
/ 20 сентября 2019

На диаграмме классов атрибуты класса, такие как self.x, self.y и т. Д., Перечислены в своем собственном разделе после имени класса, но перед методами класса.Нет необходимости добавлять self перед каждым атрибутом, поэтому вы можете просто удалить его.

При перечислении методов класса вы обычно указываете только их сигнатуру (имя, имена параметров и типы) и тип возвращаемого значения.Атрибуты класса, которые используются внутри этих методов, не перечислены.Примером записи в каждом разделе может быть:

Rectangle

width: float
height: float

area(): float

Обратите внимание, что видимость атрибутов и методов класса обрабатывается по-разному в Python.В Python нет атрибутов или методов закрытого или защищенного класса;все публично.Вместо использования таких ключевых слов, как private, protected и public для обозначения видимости, имя используется для передачи намерений относительно видимости.Общее мнение заключается в том, что:

  • атрибуты класса и методы с именем, начинающимся с подчеркивания или двойного подчеркивания (применяется искажение имени), не являются частью открытого интерфейса
  • все остальные атрибуты и методы класса считаются частью открытого интерфейса

Итак, если вы хотите указать, что атрибуты ширины и высоты не должны быть доступны извне этого класса, вы должны адаптировать предыдущийНапример, следующим образом:

Rectangle

_width: float
_height: float

area(): float
_a_private_method(): None

Чтобы ответить на ваш вопрос напрямую: нет причин использовать «self» в диаграмме классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...