鱼C论坛

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

[已解决]不同的返回值

[复制链接]
发表于 2023-6-25 06:52:55 | 显示全部楼层 |阅读模式

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

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

x
代码1:
  1. def funA():
  2.     x = 690
  3.     def funB():
  4.         print(x)
  5.     return funB()
复制代码


代码2:
  1. def funA():
  2.     x = 690
  3.     def funB():
  4.         print(x)
  5.     return funB
复制代码


请问老师,代码1 和 代码2 的返回值不同,请问 return funB  和  return funB() 的返回结果分别是什么啊?分别用于什么场景呢?




最佳答案
2023-6-25 07:03:37
在代码1中,return funB()会立即调用函数funB并返回其执行结果。因此,代码1的返回值是打印出x的值690,并且返回结果为None

在代码2中,return funB只返回了函数对象funB本身,并没有调用它。因此,代码2的返回值是函数对象funB

综上所述,代码1的返回值是打印出x的值690(并返回结果为None),而代码2的返回值是函数对象funB。两者的返回结果不同,适用于不同的场景。

代码1和代码2的返回值适用于不同的场景:

代码1的返回值适用于需要立即执行函数并获取其结果的场景。通过使用return funB(),可以在调用funA函数时立即执行funB函数内部的操作,并将结果返回。这对于希望在调用函数时立即执行某些操作,并且关心函数执行结果的情况非常有用。

代码2的返回值适用于将函数作为对象进行处理的场景。通过使用return funB,可以将函数对象funB作为返回值,而不是立即执行函数内部的操作。这对于希望将函数作为其他函数的参数、将其存储在变量中或以其他方式对函数对象进行操作的情况非常有用。

因此,代码1的返回值适用于立即执行函数并获取结果的场景,而代码2的返回值适用于将函数作为对象进行处理的场景。具体使用哪种返回形式取决于你的需求和代码的设计。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-24 03:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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