UML类图:如果函数返回函数调用,函数的返回类型是什么?

2024-05-18 07:12:58 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个函数,比如:

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):返回类型

我要把:

+函数(self):ListParser(ls)

或者

+func(self):文件[]

我把它最终会返回的还是函数调用。在

谢谢。在


Tags: to函数self类型returndefwithsome
1条回答
网友
1楼 · 发布于 2024-05-18 07:12:58

实际上你的问题是不正确的。您的函数func不返回函数,而是返回函数的结果。据我所知,没有一个通用类型表示函数。操作的返回是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.

所以,如果你想返回一个函数,你或多或少可以自由地发明你自己的符号。在大多数情况下,这是特定于语言的(例如,在Swift中,对于没有参数的void函数,您将显示为() -> ();对于Python,您可以“发明”符号<func>来返回函数)。在

现在,如前所述,返回的不是函数,而是函数的结果。这似乎是一个数组。我假设是一个字符串数组。所以我会把它表现为

enter image description here

假设以上是类ClassWhatEver的一部分。请注意,签名没有列出名称,而是列出类型,因此对于self您将显示类名。如果您是面向Python建模的,并且有一些建模指南说明了这一点,那么也可以不考虑这个问题。在这种情况下,您需要区分静态功能,并将其定型如下:

enter image description here

注意:你用大写字母L命名了ListParser。不过,您应该坚持常见的命名规则,并且只对类、类型等使用大写字母首字符,而不是用于操作。所以你应该把它命名为listParser。在

相关问题 更多 >