以 f(x)(y) 格式调用 Python 函数意味着什么?

Ter*_*ice 2 python function python-3.x

在本文中给出了以下代码行的示例:

 x = layers.Dense(64, activation="relu", name="dense_1")(inputs)
Run Code Online (Sandbox Code Playgroud)

这似乎是一个函数调用,它首先传入 64,然后传入两个命名参数,然后传入input.

这里发生了什么?是inputs被传递给layers.Dense还是别的什么?

Var*_*r42 8

函数“Dense”返回可调用的内容,该内容由第二对括号调用。

例如:

def function1():
    return function2

def function2():
    print('Function 2')

x = function1()
x() # This will print "Function 2"
Run Code Online (Sandbox Code Playgroud)

也可以返校上课。在这种情况下,括号将调用构造函数,从而创建该类的实例。

def function1():
    return SomeClass

class SomeClass:
    def __init__(self):
        print("__init__")

x = function1()
x() # This will print "__init__"
Run Code Online (Sandbox Code Playgroud)