鱼C论坛

 找回密码
 立即注册
查看: 1160|回复: 3

[已解决]可以解释下 这两段区别是啥吗

[复制链接]
发表于 2020-6-26 16:10:40 | 显示全部楼层 |阅读模式

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

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

x
def funOut():

    def funIn():

        print('宾果!你成功访问到我啦!')

    return funIn()

def funOut():

    def funIn():

        print('宾果!你成功访问到我啦!')

    return funIn
最佳答案
2020-6-26 16:17:39


函数带上 括号是调用这个函数,返回这个函数的执行结果,而函数不带括号就是指这整个函数体

就对你这而言吧,第一个代码:
def funOut():

    def funIn():

        print('宾果!你成功访问到我啦!')

    return funIn()
带上了括号,当你调用 funOut() 函数时候,返回的是 funIn() 函数运行的结果,也就等于你先调用了 funOut() 函数,然后再调用了 funIn() 函数

而 funIn() 函数里没有设置 return 返回值 那么 Python 默认返回了 None,则调用最后返回结果是 None

而第二个代码:
def funOut():

    def funIn():

        print('宾果!你成功访问到我啦!')

    return funIn
没带上括号,那么返回的就是 funIn 这整个函数体,当你调用 funOut() 函数时候,返回的结果是funIn 这整个函数体

也就是可以看成 你如果 x = funOut() 调用 这个函数 因为函数返回的还是一个函数,那么x就等于返回的那个函数 即: x = funIn

这个时候你可以继续调用 x 函数,实际上就是在调用 funIn 函数

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-26 16:17:13 | 显示全部楼层
第一个函数返回的结果就只是打印这一句话,而第二个函数返回的是内部函数的内存地址。

也就是说,第一个函数返回的,你没办法再加工了;而第二个函数返回的东西你还可以再加工。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-26 16:17:39 | 显示全部楼层    本楼为最佳答案   


函数带上 括号是调用这个函数,返回这个函数的执行结果,而函数不带括号就是指这整个函数体

就对你这而言吧,第一个代码:
def funOut():

    def funIn():

        print('宾果!你成功访问到我啦!')

    return funIn()
带上了括号,当你调用 funOut() 函数时候,返回的是 funIn() 函数运行的结果,也就等于你先调用了 funOut() 函数,然后再调用了 funIn() 函数

而 funIn() 函数里没有设置 return 返回值 那么 Python 默认返回了 None,则调用最后返回结果是 None

而第二个代码:
def funOut():

    def funIn():

        print('宾果!你成功访问到我啦!')

    return funIn
没带上括号,那么返回的就是 funIn 这整个函数体,当你调用 funOut() 函数时候,返回的结果是funIn 这整个函数体

也就是可以看成 你如果 x = funOut() 调用 这个函数 因为函数返回的还是一个函数,那么x就等于返回的那个函数 即: x = funIn

这个时候你可以继续调用 x 函数,实际上就是在调用 funIn 函数

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

使用道具 举报

 楼主| 发表于 2020-6-26 16:52:54 | 显示全部楼层
Twilight6 发表于 2020-6-26 16:17
函数带上 括号是调用这个函数,返回这个函数的执行结果,而函数不带括号就是指这整个函数体

就对你 ...

我明白了 哥哥你真棒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 06:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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