鱼C论坛

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

[已解决]求教:内嵌函数的问题?

[复制链接]
发表于 2017-10-5 16:15:49 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 694061755 于 2017-10-5 16:55 编辑

>>> def funX(x):
                def funY(y):
                        return x * y
                return funY

>>> i = funX(8)
>>> i(5)
40
也可以直接这么写:
>>>funX(8)(5)
40

请问,哪位大神可以解释下意思和执行过程吗?谢谢了!!!
最佳答案
2017-10-5 17:47:50
  1. i = funX(8)
复制代码

得到了x,等于8
  1. i(5)
复制代码

调用内部
得到y,等于5
返回乘积5*8即40
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-5 17:46:27 | 显示全部楼层
不是写的挺明白的嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-5 17:47:50 | 显示全部楼层    本楼为最佳答案   
  1. i = funX(8)
复制代码

得到了x,等于8
  1. i(5)
复制代码

调用内部
得到y,等于5
返回乘积5*8即40
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-5 18:52:34 | 显示全部楼层
本帖最后由 694061755 于 2017-10-5 19:03 编辑
新手·ing 发表于 2017-10-5 17:47
得到了x,等于8

调用内部


>>> def funX():
        x = 5
        def funY():
                nonlocal x
                x *= 3
                return x
        return funY

>>> funX()()
15

再问一下,funX()()  前面()对应的是外面funX里的5,而后面的()对应的是里面funY里的3,是这么理解吗?请大神指教,谢谢!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-5 21:14:04 | 显示全部楼层
694061755 发表于 2017-10-5 18:52
>>> def funX():
        x = 5
        def funY():

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 21:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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