在 Python UML class 图中指定 self 参数
Specifying self parameter in Python UML class diagrams
我知道 Python 没有官方的 UML 标准,但是如果我想在 class 的方法中指定参数,我应该指定 self
参数吗?或者认为它默认通过?将感谢使用 self
参数的任何过程和缺点。
在 class 图表中,class 属性(例如 self.x、self.y 等)列在各自的部分中,在 class 之后名称,但在 class 方法之前。不需要在每个属性前都加上self,直接去掉即可。
列出 class 方法时,通常只列出它们的签名(名称、参数名称和类型)和 return 类型。未列出在这些方法中使用的 class 属性。每个部分中的条目示例为:
Rectangle
width: float
height: float
area(): float
请注意,class 属性和方法的可见性在 Python 中的处理方式不同。 Python 中没有私有或受保护的 class 属性或方法;一切都是 public。名称不是使用 private、protected 和 public 等关键字来表示可见性,而是用于传达有关可见性的意图。普遍的共识是:
- class 名称以下划线或双精度开头的属性和方法
下划线(应用名称修改)不是 public 接口的一部分
- 所有其他 class 属性和方法都被视为 public 接口的一部分
因此,如果您想要指示宽度和高度属性不应从此 class 外部访问,您可以按以下方式调整前面的示例:
Rectangle
_width: float
_height: float
area(): float
_a_private_method(): None
直接回答你的问题:没有理由在 class 图表中使用 'self'。
我知道 Python 没有官方的 UML 标准,但是如果我想在 class 的方法中指定参数,我应该指定 self
参数吗?或者认为它默认通过?将感谢使用 self
参数的任何过程和缺点。
在 class 图表中,class 属性(例如 self.x、self.y 等)列在各自的部分中,在 class 之后名称,但在 class 方法之前。不需要在每个属性前都加上self,直接去掉即可。
列出 class 方法时,通常只列出它们的签名(名称、参数名称和类型)和 return 类型。未列出在这些方法中使用的 class 属性。每个部分中的条目示例为:
Rectangle
width: float
height: float
area(): float
请注意,class 属性和方法的可见性在 Python 中的处理方式不同。 Python 中没有私有或受保护的 class 属性或方法;一切都是 public。名称不是使用 private、protected 和 public 等关键字来表示可见性,而是用于传达有关可见性的意图。普遍的共识是:
- class 名称以下划线或双精度开头的属性和方法 下划线(应用名称修改)不是 public 接口的一部分
- 所有其他 class 属性和方法都被视为 public 接口的一部分
因此,如果您想要指示宽度和高度属性不应从此 class 外部访问,您可以按以下方式调整前面的示例:
Rectangle
_width: float
_height: float
area(): float
_a_private_method(): None
直接回答你的问题:没有理由在 class 图表中使用 'self'。