鱼C论坛

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

[已解决]关于内嵌函数以及闭包的几个问题

[复制链接]
发表于 2017-8-10 20:08:42 | 显示全部楼层 |阅读模式

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

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

x
>>> def fun1():
                print('fun1()正在被调用...')
                def fun2():
                        print('fun2()正在被调用...')
                fun2()

       
>>> fun1()
fun1()正在被调用...
fun2()正在被调用...




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

>>> funX(8)(5)
40



两段对比起来看  第一段最后fun() 是调用,那么调用是什么样的一个概念,在什么情况下需要调用函数。第二段最后是返回值return funY 与调用的区别在什么地方,什么情况下用返回值。return funY书写成return funY()不能成立,fun2()书写成fun2同样不能成立,这怎么理解。启用第一段的函数为什么是fun1()而不是fun1()()。内部函数与外部函数有什么关联,在第二段代码中可以把funY理解成funX(x)吗?

以上 冥思苦想终不得解
萌新买了个萌咧
最佳答案
2017-8-10 22:25:46
2017-08-10_222354.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-10 22:25:46 | 显示全部楼层    本楼为最佳答案   
2017-08-10_222354.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-10 23:19:25 | 显示全部楼层

我刚才试了一下如果吧return x*y 修改为 print x*y 输出是一样的 编写闭包的时候有必要把全部格式化为return吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-10 23:29:24 | 显示全部楼层
s1dney 发表于 2017-8-10 23:19
我刚才试了一下如果吧return x*y 修改为 print x*y 输出是一样的 编写闭包的时候有必要把全部 ...

return 是返回值
print 是打印值
不一样的。返回值还可以用来计算操作。打印值只是打印出来而已
2017-08-10_232717.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-10 23:38:35 | 显示全部楼层
ba21 发表于 2017-8-10 23:29
return 是返回值
print 是打印值
不一样的。返回值还可以用来计算操作。打印值只是打印出来而已

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 11:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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