为什么当我调用一个闭包它执行一个嵌套函数?

时间:2016-10-29 14:25:29

标签: python python-2.7 python-3.x

我正在学习闭包,我有两个问题。

从我读到的有关闭包的内容:

  • 仅当程序具有嵌套函数时才使用闭包
  • 闭包用于指定嵌套函数的返回值

第一个问题:

我对封闭的理解是对吗?

def hi(x):
   print(x)
   def hh():
      print(x)
      return x

   return hh
hi(9)

hj=hi(12)
hj11=hi(99)

print(hj())
print(hj11())

第二个问题: 为什么每次调用hj()hj11()时都会调用嵌套函数?

我很困惑,如果闭包分配给主函数(hj=hi , hj11=hi),那么为什么每当我调用hj()时它都会调用嵌套函数?

0 个答案:

没有答案