【发布时间】:2019-09-20 15:48:02
【问题描述】:
我知道 Python 没有官方的 UML 标准,但是如果我想在类的方法中指定参数,我应该指定 self 参数吗?或者认为它是默认通过的?将感谢使用 self 参数的任何过程和缺点。
【问题讨论】:
-
什么样的UML图?类图?序列图?
-
@averresen,一级
我知道 Python 没有官方的 UML 标准,但是如果我想在类的方法中指定参数,我应该指定 self 参数吗?或者认为它是默认通过的?将感谢使用 self 参数的任何过程和缺点。
【问题讨论】:
在类图中,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”。
【讨论】: