鱼C论坛

 找回密码
 立即注册
查看: 2958|回复: 4

小甲鱼 新手学python 闭包中疑惑求大佬解惑

[复制链接]
发表于 2022-3-25 10:29:05 | 显示全部楼层 |阅读模式

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

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

x
嵌套函数中:
def funA():
        x = 880
        def funB():
                print(x)
        return funB

funA()
此处返回是函数funA的地址?
funA()()
返回是 880, 这里不懂,求大佬解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-25 10:35:31 From FishC Mobile | 显示全部楼层
funA() 返回 funB 也就是 funB 地址

注:
funB() 有括号执行函数,有返回值,则返回值
funB 没有括号,返回地址(对象)

funA() 有括号执行该函数,该函数返回 funB
funA()() 有两个括号,先从前面看(如上),funA() = funB,那么 funA()() = funB()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-3-25 10:37:18 | 显示全部楼层
它的运行流程是这样子的:1、运行funA(),funB这里没有括号,表示的是funB这个变量,所以地址是funB的。2、你把return理解为“代替”,那就是funA()最终运行的结果就是funB,然后funA()()就等于funB(),运行funB()就打印了880这个数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-25 11:01:40 | 显示全部楼层
wiselin 发表于 2022-3-25 10:37
它的运行流程是这样子的:1、运行funA(),funB这里没有括号,表示的是funB这个变量,所以地址是funB的。2、 ...

感谢解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-25 11:02:45 | 显示全部楼层
傻眼貓咪 发表于 2022-3-25 10:35
funA() 返回 funB 也就是 funB 地址

注:

感谢答疑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-7 00:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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