请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么在非闭包的解决方案中,global 改成nonlocal以后会报错?

正在回答 回答被采纳积分+3

2回答

提问者 weixin_慕勒4393907 2020-03-22 21:43:30

origin = 0

def f(dx):

    nonlocal origin

    x = origin + dx

    origin = x

    return x

print(f(2))

print(f(3))

print(f(6))


0 回复 有任何疑惑可以回复我~
7七月 2020-03-21 12:11:55

麻烦贴下完整代码

0 回复 有任何疑惑可以回复我~
  • 提问者 weixin_慕勒4393907 #1
    origin = 0
    def f(dx):
        nonlocal origin
        x = origin + dx
        origin = x
        return x
    print(f(2))
    print(f(3))
    print(f(6))
    回复 有任何疑惑可以回复我~ 2020-03-22 21:43:43
  • 7七月 回复 提问者 weixin_慕勒4393907 #2
    看下源码,仔细对比下。还是写错了
    回复 有任何疑惑可以回复我~ 2020-03-23 06:19:30
  • 提问者 weixin_慕勒4393907 回复 7七月 #3
    你好,我这边是在看视频之前自己打的代码。如果这里nonlocal 改成 global 的话,效果和视频里是一样的。可是为什么nonlocal会报错?是不是nonlocal申明的变量不会去全局中寻找值?
    回复 有任何疑惑可以回复我~ 2020-03-23 21:38:45
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信