火锅锅 发表于 2020-12-27 22:46:40

内嵌函数

在内嵌函数中return fun2和return fun2() 的区别    小括号影响的是什么    因为在程序中是不一样的

jackz007 发表于 2020-12-27 23:25:19

本帖最后由 jackz007 于 2020-12-27 23:31 编辑

return fun2
      返回的是内嵌函数 fun2 的调用地址,不会对 fun2() 进行调用,而
return fun2()
      返回的是对函数 fun2() 的调用结果
      运行下面的程序应该可以看出效果
      return fun2
def fun1():
    print("i'm in fun1()")
    def fun2():
      print("i'm in fun2()")
    return fun2

a = fun1()    # 调用 fun1()
print("i'm in main()")
a()         # 调用内嵌函数 fun2()
      return fun2()
def fun1():
    print("i'm in fun1()")
    def fun2():
      print("i'm in fun2()")
    return fun2()

a = fun1()   # 调用 fun1() ,同时,fun1() 调用内嵌函数 fun2()
print("i'm in main()")      

火锅锅 发表于 2020-12-28 14:17:18

jackz007 发表于 2020-12-27 23:25
返回的是内嵌函数 fun2 的调用地址,不会对 fun2() 进行调用,而

      返回的是对函数 fun2()...

已经运行,谢谢return fun2返回的是地址return fun2()返回的是 fun2 函数的数据
页: [1]
查看完整版本: 内嵌函数