python - 在 Python UML 类图中指定 self 参数

标签 python uml

我知道 Python 没有官方的 UML 标准,但是如果我想在类的方法中指定参数,我应该指定 self 参数吗?或者认为它已默认通过?将感谢使用 self 参数的任何优点和缺点。

最佳答案

在类图中,类属性(例如 self.x、self.y 等)在其自己的部分中列出,位于类名称之后、类方法之前。不需要在每个属性前面都添加 self,所以可以将其删除。

列出类方法时,通常只列出它们的签名(名称、参数名称和类型)和返回类型。未列出这些方法内部使用的类属性。每个部分中的条目示例如下:

Rectangle

width: float
height: float

area(): float

请注意,类属性和方法的可见性在 Python 中的处理方式不同。 Python 中没有私有(private)或 protected 类属性或方法;一切都是公开的。该名称不是使用 private、protected 和 public 等关键字来表示可见性,而是用于传达有关可见性的意图。普遍的共识是:

  • 名称以下划线或 double 字符开头的类属性和方法 下划线(应用名称修改)不是公共(public)接口(interface)的一部分
  • 所有其他类属性和方法都被视为公共(public)接口(interface)的一部分

因此,如果您希望指示不应从此类外部访问宽度和高度属性,则可以按以下方式修改前面的示例:

Rectangle

_width: float
_height: float

area(): float
_a_private_method(): None

直接回答您的问题:没有理由在类图中使用“self”。

关于python - 在 Python UML 类图中指定 self 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58031589/

相关文章:

python - "Spell check"并在 Python 中返回更正后的术语

python - 如何从Python数组中删除特定字符

UML 类图构造

uml - 类图 : Does Every Use Case Need to Be Drawn With Repeating Classes?

Python:这是覆盖 __eq__ 和 __hash__ 的好方法吗?

python - Google App Engine NDB 数据库损坏了吗?

android - Android-Activity和Android-Fragment的关系是什么; UML 类图中的 Activity/Fragment 和 ViewModel?

uml - 如何在 UML 类图中描述包含的映射?

python - 对数刻度内插

uml - 序列图中方法调用的消息与信号