我知道 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/