Python 语法变量 = 函数(变量)


x = Flatten()(vgg.output)
variable = function (variable)

我在python中找不到这种类型的表达式,谁能帮我理解上面的表达式

提前致谢

这里的Flatten()函数返回另一个函数,该函数将vgg.output作为参数。发生这种情况是因为 python 中的所有内容都是第一类对象。因此,您可以返回一个函数作为函数的返回值。举个例子就清楚了:

假设我们有一个函数square它返回一个数字的平方:

def square(number):
return number**2

因此,在数字上调用平方会得到:

>>> square(3)
9

现在,让我们定义另一个返回square函数的函数,并且只返回函数:

def return_func():
return square

调用return_func我们将返回square函数:

>>> some_func = return_func()
>>> some_func
<function __main__.square(number)>
>>> some_func == square == return_func()
True

所以调用square(number)应该等价于return_func()(number),即

>>> return_func()(3)
9

所以在你的例子中,Flatten()等效于return_func()number等效于vgg.output

x = Flattern()正在调用此函数并将返回的数据分配给x

v = functionvfunction别名。你可以v()来称呼它。

Python 对内部函数有特殊的语法。

def Flatten()(vgg.output):
pass

基本相同:

def Flatten():
def inner(vgg.output):
pass

最新更新