中华小鬼 发表于 2020-3-21 23:42:52

访问内嵌函数

A.
def funOut():
    def funIn():
      print('宾果!你成功访问到我啦!')
    return funIn()

B.def funOut():
    def funIn():
      print('宾果!你成功访问到我啦!')
    return funIn

1. A和B差了最后一个(),为什么不会报错?
2. 要访问funIn,前者需要funOut(),为什么后者需要funOut()()?

sunrise085 发表于 2020-3-21 23:48:02

这是函数闭包。
前者仅仅是返回一个值,是把执行完内嵌函数后的值返回。
后者是返回一个可执行函数,后者是直接返回内嵌函数的地址,是一个可以执行的函数。
页: [1]
查看完整版本: 访问内嵌函数