在整个程序中保存要读/写的经验变量(Python3)

2024-07-05 14:31:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在努力寻找一种方法,在我的“游戏”中加入一个经验变量,而我正努力去工作。 我最近发现我可以导入我创建的不同Python文件,这使得文件更加整洁,而不是将所有内容都放在一个文件中。 不过,我想我很难弄清楚如何让全局变量发挥作用。如果有人能给我一个解决方案而不使用外部模块,或者创建一个单独的文件,那就太好了。我希望所有变量都保留在.py文件中

这是我认为有效的方法。也许它会起作用,我只是不知道如何做正确。 我想有三个(或更多)文件。文件1将是主文件。这将有主菜单,并允许球员去其他活动。文件2将包含变量player\ u experience并且将等于0(但将在整个游戏中添加到)。文件3+将是事件,可以做,作为回报,给经验。我需要的经验变量能够读取所有的文件,并可以添加到任何需要的时候

我原以为在我所有文件的顶端使用“全球玩家体验”可以让这个工作,但我没能让它工作。

如果有什么区别的话,我只在我的文件中使用定义。例如:

#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 somewhere

check\u experience功能只会打印出玩家的体验。但是我希望这个函数能够在所有文件中使用(我想只要在文件中定义函数,并在需要时导入函数就可以了)

#file2.py
print('yay you beat the game, here's 500 experience')
player_experience += 500
print('You now have',player_experience,'experience.')

如果这是一个常见的问题,我很抱歉,我已经尝试过对此进行自己的研究,但是如果不创建一个单独的配置类型文件,我就找不到任何东西,这在目前有点超出了我的能力。我很感激你对我的帮助,如果有什么我可以做的,让这个问题变得更好,请告诉我


Tags: 文件方法函数pygame游戏定义check
1条回答
网友
1楼 · 发布于 2024-07-05 14:31:51

你需要导入你的小游戏函数,并用它来更新经验变量,它将是你的主文件中的一个全局变量

/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 score

相关问题 更多 >