【问题标题】:Specifying self parameter in Python UML class diagrams在 Python UML 类图中指定 self 参数
【发布时间】:2019-09-20 15:48:02
【问题描述】:

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

【问题讨论】:

  • 什么样的UML图?类图?序列图?
  • @averresen,一级

标签: python uml


【解决方案1】:

在类图中,self.x、self.y 等类属性列在它们自己的部分中,在类名之后,类方法之前。不需要在每个属性前面加上self,直接去掉即可。

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

Rectangle

width: float
height: float

area(): float

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

  • 名称以下划线或双引号开头的类属性和方法 下划线(应用名称修饰)不是公共接口的一部分
  • 所有其他类属性和方法都被视为公共接口的一部分

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

Rectangle

_width: float
_height: float

area(): float
_a_private_method(): None

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

【讨论】:

  • 我会使用 UML 表示法来表示公共/私有 (+/-)。所以你的模型独立于语言。代码生成会在名称前添加下划线。
猜你喜欢
  • 2014-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
  • 1970-01-01
  • 1970-01-01
  • 2011-04-29
  • 1970-01-01
相关资源
最近更新 更多