Python嵌套函数调用多个()

时间:2019-02-22 08:21:22

标签: python function nested

有人可以解释逻辑或语法吗 function()() 要么 function(function)()

一个例子: 我似乎无法理解其实际工作原理

func2(func1)("bye")

def func2(fn):
    print("func2")
    def func3(text2):
        print("func3")
        print(text2)
    return func3

def func1():
    print("func1")

func2(func1)("bye")

输出:

func2
func3
bye

2 个答案:

答案 0 :(得分:1)

一个函数可以返回另一个函数。第一个调用,调用第一个函数,第二个调用第一个函数返回的函数。

嵌套定义是一个独立的概念,与问题无关(关于函数返回函数),因为func3仅存在于func2的范围内,这可能会造成混淆。

这是一个更简单的示例:

def f1(a):
    print("Function f1 called")
    print(a)

def f2(b):
    print("Function f2 called")
    print(b)
    return f1


f2(1)(2)
Function f2 called
1
Function f1 called
2

答案 1 :(得分:-2)

A。 FunctionName(Argument1,Argument2):

Argument1

我们使用上述语法来调用带有两个参数Argument2def Add(arg1, arg2): addition= arg1 +arg2 print( addition ) Add(2,3) 的函数。
示例:

Function(arg1)(arg2) 

B。 FunctionName(Argument1)(Argument2):

但是,当您使用一对一参数调用函数时
有点:

arg1

您使用第一个参数arg2调用该函数,然后返回另一个函数,然后由第二个参数{{1}}调用