ho75 发表于 2022-12-6 16:45:11

return funY 和funY()别

def funX():
      def funY():
             x =3
            return x
      return funY 和return funY()有什么区别吗

lxping 发表于 2022-12-6 17:19:54

本帖最后由 lxping 于 2022-12-6 17:57 编辑

return funY   —— 返回的是一个函数,并未执行函数
return funY()—— 返回的是函数执行结果
def funX():
    def funY():
      x =3
      return x
    return funY
funX()    #相当于funY
<function funX.<locals>.funY at 0x00000170CBC7EDD0>
funX()()#相当于funY()
3
def funX():
    def funY():
      x =3
      return x
    return funY()

funX()可以直接执行并输出结果
3

Twilight6 发表于 2022-12-6 18:44:28




参考文章:https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=175453&pid=4848159


Hello110 发表于 2022-12-6 19:40:50

百度一下 函数 一等公民

小甲鱼的二师兄 发表于 2022-12-6 21:46:27

return funY 是返回 funY 函数,拿到这个返回值就相当于拿到 funY 函数自身,加个小括号就能调用。

return funY() 是先执行 funY() 函数,得到一个结果,再将这个结果返回。

ho75 发表于 2022-12-7 14:17:02

明白了 謝謝各位
页: [1]
查看完整版本: return funY 和funY()别