Python 将全局变量设置回其默认值

Python 将全局变量设置回其默认值,python,global-variables,Python,Global Variables,在游戏中,我创建了一些全局变量,当某个动作发生时,这些变量的值会发生变化。当我重新启动游戏时,我希望将它们的值重新设置为初始值 K= 0 def change(): #change global variable value global K K +=5 def restart(): #restarts game 我可以通过使全局变量值等于其原始值来更改它 K = 0 有没有其他方法可以做到这一点,当有很多变量时,我不能使它们成为局部变量 感谢您的帮助如果我理解正确

在游戏中,我创建了一些全局变量,当某个动作发生时,这些变量的值会发生变化。当我重新启动游戏时,我希望将它们的值重新设置为初始值

K= 0

def change():
  #change global variable 
  value
  global K
  K +=5
 def restart():
  #restarts game
我可以通过使全局变量值等于其原始值来更改它

K = 0
有没有其他方法可以做到这一点,当有很多变量时,我不能使它们成为局部变量


感谢您的帮助

如果我理解正确,您不希望游戏重置,而是希望在重新启动后继续。为此,必须将变量保存到文件中。代码运行时,所有变量及其值都存储在设备的RAM中。当代码停止运行时,它们将从RAM中删除。要在代码停止后存储变量,必须将它们存储到硬盘中。为此,您只需创建一个文件并将所有内容放在其中


对于变量,应该使用SQLite3(数据库)或JSON。如果你只存储一些变量,JSON应该这样做,但是如果你在游戏中存储了大量变量(我指的是大量变量,例如世界上存在的每个实体和每个箱子等等),你应该使用一个数据库。

这里只有很少的示例代码给你一个示例-但从我的了解,你正在尝试这样做,是时候继续使用一些对象定向了

无需求助于任何更复杂的方法,您可以使用一个对象作为跨多个函数访问所需变量的命名空间

在重新启动游戏时,只需创建一个新实例,其中包含为状态保持对象设置的所有初始值

由于Python的工作方式,您甚至可以将默认值设置为类属性,并且每次更新这些属性时,更新只会影响与正在进行的游戏状态相对应的实例。通过这样做,您可以使用一个全局变量来保存游戏状态实例:


类游戏状态:
k=0
其他变量=0
def restart():
全球国家
状态=游戏状态()
def change():
...
状态k+=5

请注意,如果您这样做正确,您就可以“免费”获得一种保存和恢复游戏的方式,让多个玩家同时拥有一个单独的状态,等等。

只要您不使用,全局命名空间中变量的值就不能在某个函数中更改我知道它,请忘记添加它,我的BAD编写一个函数,声明并初始化所有变量,或者使用带有类或实例属性的
Settings
类,而不是全局变量。这根本不是OP的意思:“当我重新启动游戏时,我希望将它们的值重新设置为初始值。”