所以我有一个函数可以说:
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类图中,如果看起来像这样,我应该为返回类型添加什么:
+
func(self):返回类型
我把:
+
func(self):ListParser(ls)
或
+
func(self):files []
我会把最终返回的内容或函数调用。
谢谢。
答案 0 :(得分:2)
其实你的问题不正确。函数func
不返回函数,而是函数的结果。据我所知,没有代表函数的常见类型。操作的返回是Type
9.6.4表示法 如果在图中显示,则操作显示为以下形式的文本字符串:
[<visibility>] <name> ‘(‘ [<parameter-list>] ‘)’ [‘:’ [<return-type>] [‘[‘ <multiplicity-range> ‘]’] [‘{‘ <oper-property> [‘,’ <oper-property>]* ‘}’]]
...
•
<return-type>
是返回结果的类型,如果操作定义了一个参数。
因此,如果您想要返回一个函数,那么您或多或少可以自由发明自己的符号。在大多数情况下,这将是特定于语言的(例如,在Swift中,您将为没有参数的void函数显示为() -> ()
;对于Python,您可以“发明”符号<func>
以返回函数。)< / p>
现在,正如已经说过的,你不会返回一个函数,而是函数的结果。这似乎是一个阵列。我会假设一个字符串数组。所以我会把它表示为
假设上述内容属于类ClassWhatEver
的一部分。请注意,签名不会列出名称,而是列出类型,因此对于self
,您将显示类名。如果您正在为Python建模并且有一些建模指导原则,那么也可以将其留下。在这种情况下,您需要区分静态函数,如此刻板印象:
N.B。您使用大写ListParser
命名L
。虽然你应该坚持使用通用的命名规则,并且只对类,类型等使用大写第一个字符,而不是操作。因此,您应该将其命名为listParser
。