鱼C论坛

 找回密码
 立即注册
查看: 1627|回复: 6

[已解决]嵌套函数返回的问题

[复制链接]
发表于 2021-6-7 11:39:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def funOut():
    def funIn():
        print('宾果!你成功访问到我啦!')
    return funIn

funOut()()

这段代码为什么需要 在funOut函数后面用两个小括号?
最佳答案
2021-6-7 12:02:26
sc-tbm 发表于 2021-6-7 11:45
我知道是调用,我的意思是为什么 一个括号不返回值,而两个括号才会返回 funIn 函数?


这东西没多难吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-7 11:43:14 From FishC Mobile | 显示全部楼层
第一个括号是调用
第二个括号还是调用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-7 11:45:26 | 显示全部楼层
wp231957 发表于 2021-6-7 11:43
第一个括号是调用
第二个括号还是调用

我知道是调用,我的意思是为什么 一个括号不返回值,而两个括号才会返回 funIn 函数?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-7 12:02:26 | 显示全部楼层    本楼为最佳答案   
sc-tbm 发表于 2021-6-7 11:45
我知道是调用,我的意思是为什么 一个括号不返回值,而两个括号才会返回 funIn 函数?


这东西没多难吧
无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-7 12:05:35 | 显示全部楼层
sc-tbm 发表于 2021-6-7 11:45
我知道是调用,我的意思是为什么 一个括号不返回值,而两个括号才会返回 funIn 函数?

也许这样 好理解 ???

>>> def funOut():
...   def funIn():
...      print('宾果!你成功访问到我啦!')
...   return funIn
...

>>> 内部函数地址=funOut()
>>> 内部函数调用=内部函数地址()
宾果!你成功访问到我啦!
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-7 12:37:23 | 显示全部楼层
wp231957 发表于 2021-6-7 12:02
这东西没多难吧

这个好理解一些,因为是编程0基础,所以很多运行机制都不了解
这里的意思是,funOut 函数不加括号,表示返回它的内存地址
然而加一个括号的情况下,由于funOut函数返回的是内部函数funIn的值
而返回 return funIn 函数没有小括号,因此返回的也是它的内存地址,
所以最终 funOut 函数如果要调用funIn的返回值,需要再加一个小括号?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-7 12:44:58 From FishC Mobile | 显示全部楼层
sc-tbm 发表于 2021-6-7 12:37
这个好理解一些,因为是编程0基础,所以很多运行机制都不了解
这里的意思是,funOut 函数不加括号,表示 ...

是这个样子的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-15 13:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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