UML Class 图:如果函数 return 是一个函数调用,函数的 return 类型是什么?
UML Class Diagram: What goes in the return type for the function if the function returns a function call?
所以我有一个函数可以说:
def func(self):
ls = []
#do something to ls
return self.ListParser(ls)
def ListParser(self, ls):
files = []
# do some stuff with ls and files
return files
所以在 uml class 图表中,我应该为 return 输入什么,如果它看起来像这样:
+
func(self): return 类型
我放:
+
func(self): ListParser(ls)
或
+
func(self): 文件[]
我到底要放什么它最终会 return 还是函数调用。
谢谢。
其实你的问题是不正确的。你的函数 func
不是 return 一个函数,而是一个函数的结果。据我所知,没有表示函数的通用类型。一个操作的return是一个Type
9.6.4 Notation
If shown in a diagram, an Operation is shown as a text string of the form:
[<visibility>] <name> ‘(‘ [<parameter-list>] ‘)’ [‘:’ [<return-type>] [‘[‘ <multiplicity-range> ‘]’] [‘{‘ <oper-property> [‘,’ <oper-property>]* ‘}’]]
...
• <return-type>
is the type of the return result Parameter if the Operation has one defined.
因此,如果您想 return 一个函数,您或多或少可以自由地发明自己的符号。在大多数情况下,这将是特定于语言的(例如,在 Swift 中,对于没有参数的 void 函数,您将显示为 () -> ()
;对于 Python,您可以 'invent' 表示法 <func>
到return一个函数)。
现在,如前所述,您 return 不是函数,而是函数的结果。那似乎是一个数组。我会假设一个字符串数组。所以我会显示为
假设以上是classClassWhatEver
的一部分。请注意,签名不列出名称,而是列出类型,因此对于 self
,您将显示 class 名称。如果您正在为 Python 建模并且有一些建模指南是这样说的,那么也可以将其保留。在那种情况下,您需要像这样对静态函数进行定型来区分它们:
N.B。您用大写 L
命名了 ListParser
。尽管您应该遵守通用的命名规则,并且只对 classes、类型等使用首字母大写的字符,而不是用于操作。所以您应该将其命名为 listParser
。
所以我有一个函数可以说:
def func(self):
ls = []
#do something to ls
return self.ListParser(ls)
def ListParser(self, ls):
files = []
# do some stuff with ls and files
return files
所以在 uml class 图表中,我应该为 return 输入什么,如果它看起来像这样:
+
func(self): return 类型
我放:
+
func(self): ListParser(ls)
或
+
func(self): 文件[]
我到底要放什么它最终会 return 还是函数调用。
谢谢。
其实你的问题是不正确的。你的函数 func
不是 return 一个函数,而是一个函数的结果。据我所知,没有表示函数的通用类型。一个操作的return是一个Type
9.6.4 Notation If shown in a diagram, an Operation is shown as a text string of the form:
[<visibility>] <name> ‘(‘ [<parameter-list>] ‘)’ [‘:’ [<return-type>] [‘[‘ <multiplicity-range> ‘]’] [‘{‘ <oper-property> [‘,’ <oper-property>]* ‘}’]]
...
•
<return-type>
is the type of the return result Parameter if the Operation has one defined.
因此,如果您想 return 一个函数,您或多或少可以自由地发明自己的符号。在大多数情况下,这将是特定于语言的(例如,在 Swift 中,对于没有参数的 void 函数,您将显示为 () -> ()
;对于 Python,您可以 'invent' 表示法 <func>
到return一个函数)。
现在,如前所述,您 return 不是函数,而是函数的结果。那似乎是一个数组。我会假设一个字符串数组。所以我会显示为
假设以上是classClassWhatEver
的一部分。请注意,签名不列出名称,而是列出类型,因此对于 self
,您将显示 class 名称。如果您正在为 Python 建模并且有一些建模指南是这样说的,那么也可以将其保留。在那种情况下,您需要像这样对静态函数进行定型来区分它们:
N.B。您用大写 L
命名了 ListParser
。尽管您应该遵守通用的命名规则,并且只对 classes、类型等使用首字母大写的字符,而不是用于操作。所以您应该将其命名为 listParser
。