你的问题是你指的是不同范围内的变量“任务”。
考虑这个例子:
mission = 1 def set_mission(): mission = 2 print(mission) set_mission() print(mission)
将打印:
1 1
“使命”似乎没有改变嗯。发生的事情是'任务'是两个独立的变量,一个全局变量(定义为第1行)和一个局部变量(定义为第3行)。本地实例仅存在于set_mission()的范围内,之后将被删除。当我们将'mission'设置为2时,我们设置本地实例而不是全局实例。当我们打印出来时,我们正在打印全球实例,它从未被触及过!
有两种方法可以解决这个问题。
的 选项1 强>
仅使用全局变量:
mission = 1 def set_mission(): global mission mission = 2 print(mission) set_mission() print(mission)
要么
的 选项2 强>
将变量作为参数传递,然后返回:
mission = 1 def set_mission(my_mission): my_mission = 2 return my_mission print(mission) mission = set_mission(mission) print(mission)
这两个都将返回所需的
1 2
注意范围,如果有疑问,请在函数中使用不同的变量名,这样您就不会感到困惑!