def outsideFunc(func):
def insideFunc():
print("Executing Inside Function")
print(func())
print("End Inside Function")
return insideFunc
def printer():
return "Hello World"
outsideFunc(printer) #why doesnt this do the functionality of insideFunc
#but this one below does
display = outsideFunc(printer)
display()
这个外部函数所做的是创建一个函数(内部函数,它调用您传递给外部函数的内容),然后将该函数返回给调用者。它实际上并没有调用内部函数
Python中的函数是第一类对象,可以像其他对象一样传递并绑定到其他名称
下面描述了调用此外部函数的两种方式:
功能差异的功能/结果类似于以下内容:
第一个
print
将简单地打印函数本身的表示,类似于<function fortyTwo at 0x7f9822dcb4c0>
。第二个函数实际上将调用该函数并打印出它返回的内容。它知道如何调用它,就是名称后面有()
最后三行显示绑定到另一个名称的函数,您也可以调用该名称以获得相同的效果
另外,如果希望两个代码段在函数中相同,则需要调用第一种情况下返回的函数,如下所示:
你返回^ {< CD1>},这是一个函数,认为C++ + lambda,然后你可以稍后调用。
相关问题 更多 >
编程相关推荐