鱼C论坛

 找回密码
 立即注册
查看: 2598|回复: 3

[已解决]为啥函数后有两个括号

[复制链接]
发表于 2023-7-19 13:44:25 | 显示全部楼层
在Python中,函数后面的两个括号[url=]b[/url][/b]表示函数的调用操作。当我们调用一个函数时,我们需要在函数名后面加上括号,并可以传递参数给该函数。如果函数没有参数,仍然需要使用括号进行调用。

在你提供的代码示例中,funx()表示调用函数funx,而funx()()则表示在函数funx的返回值上再次调用函数。让我们逐步解释这些代码的执行过程:

首先,调用funx()时,执行了funx函数的定义部分。在函数内部,定义了局部变量x和内嵌函数funy。接着,函数funx返回了funy函数对象。

然后,第二对括号[url=]b[/url][/b]应用在funx()的返回值上,也就是funy函数。所以,此时我们实际上是在调用funy函数。在funy函数内部,使用关键字nonlocal声明了变量x是来自于funx函数的外部变量x,并对其进行了自增操作。最后,返回了变量x的值。

因此,funx()()的运行结果是6,因为在funy函数内部,变量x的初始值为5,经过自增操作后变为6,然后作为funy函数的返回值被返回。

而对于funz(),因为funz函数定义中没有返回值,所以函数的执行结果是None。我们只需要调用funz()一次即可运行函数,不需要再次使用括号。

总结起来,当我们希望链式调用多个函数时,需要在每个函数后面加上一对括号[url=]b[/url];而对于单个函数的调用,只需要在函数名后面加上一对括号[b[/b]即可。

希望以上解释对您有所帮助!如果您还有其他问题,请随时提问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-19 09:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表