内部函数的返回地址与返回函数本身

时间:2019-03-31 17:50:00

标签: python python-3.x

在下面的代码中,print(first)返回first_child函数的地址,这对我来说很有意义,因为parent()函数返回对first_child的引用,而不是{{ 1}}函数本身-即first_child返回parent()而不返回first_child

由于返回了对first_child()函数的引用,而不是函数本身,我不明白为什么first_child实际上返回first_child函数的输出-显示“嗨,我是爱玛” 。为什么/如何以这种方式调用print(first())函数?

first_child()

1 个答案:

答案 0 :(得分:2)

您首先需要了解:在Python中,函数是一等公民。它们可以并且确实像普通变量一样工作。

忘记所有有关C或Java函数的信息。将python函数视为只是另一个变量-除了可以调用它外-即f()对于f变量是有意义的。

现在让我们回到您的问题,parent返回first_childsecond_child-这些就像变量。现在,当您使用这些变量之一并将()放在它们之后时,将调用该变量。此调用最终将评估您在parent中定义的字符串-因此,您得到“嗨,我是艾玛”

您必须了解python中的“对函数的引用”与“函数本身”一样好。

如果您需要更多详细信息,请查看:https://medium.com/python-pandemonium/function-as-objects-in-python-d5215e6d1b0d

相关问题