请稍等 ...
×

采纳答案成功!

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

有个问题,python是顺序执行,11-14中的origin赋值在new-pos之后,他是怎么知道origin要被定义而不去取外部的origin值呢?

相关代码

origin = 0
def go(step):
	new_pos = origin + step
	origin = new_pos
	return new_pos

print(go(2))
print(go(3))
print(go(6))

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

1回答

7七月 2019-06-17 21:45:50

这要加上一个nonlocal关键字吧?

0 回复 有任何疑惑可以回复我~
  • 提问者 慕数据0164170 #1
    origin = 0
    def go(step):
    	new_pos = origin + step
    	origin = new_pos
    	return new_pos
    python是顺序运行的,他运行到new_pos = origin + step的时候应该自动从函数外取全局变量,然后运行到origin = new_pos的时候才改成本地变量值吧?而不是运行到new_pos = origin + step时发现后面有本地变量值而报错
    回复 有任何疑惑可以回复我~ 2019-06-17 22:22:59
  • 慕哥1266152 回复 提问者 慕数据0164170 #2
    我也纳闷这一点
    回复 有任何疑惑可以回复我~ 2019-10-22 21:53:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信