Elfred 发表于 2019-6-10 09:06:40

nonlocal method

>>> def aaa():
              k=5
              def bbb():
                        nonlocal k
                        k*=k
                        return k
              return bbb

>>> aaa()
请问为什么打入aaa()后无法直接调用bbb(k)?
谢谢!

木木不哭like 发表于 2019-6-10 11:18:23

aaa()()就行了

Elfred 发表于 2019-6-12 07:37:03

木木不哭like 发表于 2019-6-10 11:18
aaa()()就行了

成功了,谢谢~ 我还有个小小的问题,是不是调用内嵌函数分为两种情况:
1.如果只有global variable和local variable,只需写出
>>>main() 就能显示结果。
2.如果nonlocal variable,则需写出
>>>main()() 才能显示结果?

木木不哭like 发表于 2019-6-12 15:45:27

Elfred 发表于 2019-6-12 07:37
成功了,谢谢~ 我还有个小小的问题,是不是调用内嵌函数分为两种情况:
1.如果只有global variable和loc ...

第二个不对吧
aaa()执行了后,return返回的是bbb这个函数地址,所以再加上一个()就可以执行bbb这个函数了。

Elfred 发表于 2019-6-13 12:48:03

木木不哭like 发表于 2019-6-12 15:45
第二个不对吧
aaa()执行了后,return返回的是bbb这个函数地址,所以再加上一个()就可以执行bbb这个函 ...

明白,么么哒
页: [1]
查看完整版本: nonlocal method