鱼C论坛

 找回密码
 立即注册
查看: 1385|回复: 2

[已解决]第020讲:测试题第四题第五题的区别

[复制链接]
发表于 2020-10-10 17:06:32 | 显示全部楼层 |阅读模式

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

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

x
原题如下
4. 请问如何访问 funIn() 呢?
  1. def funOut():
  2.     def funIn():
  3.         print('宾果!你成功访问到我啦!')
  4.     return funIn()
复制代码
5.请问如何访问 funIn() 呢?
  1. def funOut():
  2.     def funIn():
  3.         print('宾果!你成功访问到我啦!')
  4.     return funIn
复制代码
思来想去
我的问题是:没搞懂 funIn 后面加与不加()的区别在哪里
在看视频和看第五题时我的第一反应都是觉得会报错
我是这么理解的
1.函数在定义时需要带()
2.因第五题返回funIn没有带() ,所以python会觉得funIn不是函数而是变量,而且这个变量在之前没有被定义从而报错.
但上机看来不是

纯小白想不通我理解错在哪
有大牛能答疑一下吗

r



最佳答案
2020-10-10 17:16:26
不带()是函数名,带()是函数方法
返回的值应该是不一样的吧
  1. def funOut():
  2.     def funIn():
  3.         print('宾果!你成功访问到我啦!')
  4.     return funIn
  5. print(funOut())
  6. print()
  7. def funOut():
  8.     def funIn():
  9.         print('宾果!你成功访问到我啦!')
  10.     return funIn()
  11. print(funOut())
复制代码


<function funOut.<locals>.funIn at 0x0316EDF0>

宾果!你成功访问到我啦!
None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-10 17:16:26 | 显示全部楼层    本楼为最佳答案   
不带()是函数名,带()是函数方法
返回的值应该是不一样的吧
  1. def funOut():
  2.     def funIn():
  3.         print('宾果!你成功访问到我啦!')
  4.     return funIn
  5. print(funOut())
  6. print()
  7. def funOut():
  8.     def funIn():
  9.         print('宾果!你成功访问到我啦!')
  10.     return funIn()
  11. print(funOut())
复制代码


<function funOut.<locals>.funIn at 0x0316EDF0>

宾果!你成功访问到我啦!
None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-10 21:58:56 | 显示全部楼层
函数名后面加()表示函数的调用,即函数的执行结果;不加,表示函数对象本身
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-9 01:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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