在我的“游戏”中,我一直试图找到一种方法来获得一个经验变量,而这正是我想要去工作的。我最近发现,我能够导入我创建的不同的Python文件,这使得文件更加整洁,而不是把所有的东西都放在一个文件中。不过,我想我很难弄清楚如何让全局变量工作。如果有人可以给我一个解决方案,而不用使用外部模块,或创建一个单独的文件,这将是很好的。我希望所有变量都留在.py文件中。
这是我认为有用的东西。也许它会起作用,我只是不知道如何正确地去做。我希望有三个(或更多)文件。文件1将是主文件。这将有主菜单,并允许玩家去其他事件。文件2将包含变量player_experience,并将等于0(但将添加到整个游戏中)。文件3+将是可以完成的事件,作为回报,提供经验。我需要这个经验变量能够在所有文件中被读取,并且可以在任何需要的时候被添加到其中。
我认为,通过在所有文件的顶部使用“全局player_experience”可以使此工作,但我无法让它工作。
如果有任何不同,我只是在我的文件中使用定义。例如:
#file1.py
print('what do you want to do? 1 - game, 2 - check experience')
donow = input()
if donow == '1':
game()
if donow == '2':
check_experience() #just pretend this is defined somewherecheck_experience函数只会打印出玩家的体验。但我希望这个功能能够在所有文件中使用。(我认为只要在文件中定义函数,并在需要时导入函数,就可以做到这一点)
#file2.py
print('yay you beat the game, here's 500 experience')
player_experience += 500
print('You now have',player_experience,'experience.')很抱歉,如果这是一个常见的问题,我已经尝试做了我自己的研究,但我无法找到任何东西,不创建一个单独的配置类型文件,这是有点超出我的能力。我很感激给予我的任何帮助,如果我能做些什么使这成为一个“更好”的问题,请告诉我。
发布于 2014-06-26 21:38:02
您需要导入您的迷你游戏功能,并使用它来更新主文件中的全局体验变量。
/main.py
from minigame import game
exp = 0
exp += game()
print(exp)/minigame.py
def game():
'''This function can not reference `exp`. If `exp` were defined in
this module, it'd be a different `exp` in a different namespace.'''
score = 0
...
return scorehttps://stackoverflow.com/questions/24439615
复制相似问题