嗨,我是一名正在学习Python的初学者,我在一本书中偶然发现了这个例子,出于某种原因,当我自己尝试相同的代码时,我没有收到相同的输出?请帮忙......
def tester(start):
state = start
def nested(label):
nonlocal state
print(label, state)
state += 1
return nested
>>> F = tester(0)
>>> F('spam')
spam 0
>>> F('ham')
ham 1
>>> F('eggs')
eggs 2
每次运行该函数时,我的结果都没有递增+ 1,这本书有问题吗?
答案 0 :(得分:1)
Works for me。你确定你使用的是python 3吗? nonlocal
是一个python 3功能,不在python 2.x中工作。
答案 1 :(得分:0)
https://stackoverflow.com/a/1261961/778858总结一下。基本上python从2.~变为3.0> =你最终会遇到这样的问题。将本书开头的内容与他们使用的版本进行比较,并将其与您自己的版本进行比较。