请问这个问题,请原谅我,但我似乎找不到。
我一直试图(重新)创建一个涉及两个团队的游戏。我用球员名单来代表他们。
我面临的问题是,从一个模块到另一个模块,我不保留全局变量。
这是我项目的树:
Project_Folder
-- game.py
-- functions.py
-- variables.py
variables.py里面有这个:
player_list = []
team_1 = []
team_2 = []
在我的functions.py中:
import random
from variables import *
def init_teams():
global player_list
global team_1
global team_2
player_list = ["Player1", "Player2", "Player3", "Player4", "Player5"]
# stuff above is normaly done with inputs and loops, but i symplified it
for i in range(2):
team_2.append(player_list.pop(
random.randrange(len(player_list))))
team_1 = player_list.copy()
player_list += team_2
print(team_1)
最后在main.py中:
from functions import *
init_players()
print("Team 1 : {}, Team 2 : {}, Players : {}".format(
team_1, team_2, player_list))
当我在函数内打印team_1
变量时,我得到了正常结果,但是当我在main.py中执行此操作时,我得到了一个空列表。与player_list
变量相同。
我已经使用VS Code在断点处对其进行了检查,发现team_1
实际上是从函数更改为主文件(从正常列表到空列表),但是我不知道为什么做到了。
如果您有个好主意,请告诉我我错过了什么,它将为我节省很多搜索工作!
答案 0 :(得分:1)
global
关键字仅在使用的文件中有效。不能用于从另一个文件全局获取价值。