python - 如何存储从用户输入创建的变量并在 Python 中的不同文件中使用它?
问题描述
我是 Python 新手,因此是 Stack Overflow 社区的新手。我已经开始了我的第一个迷你项目,我想从一组 6 人中随机生成一个团队并分配两个随机团队。从那里我试图创建两个文件(每个团队一个),每次一个用户可以从他们的团队中输入每个玩家的分数,最终我希望它在单独的文件中创建一个实时排行榜。我已经成功创建了一个团队生成器。这是它的本质:
numberofplayers = int(len(online_players))
number_teams = int(input('How many teams do you want there to be?\n '))
k = int(numberofplayers/number_teams)
if numberofplayers == 6 and number_teams == 2:
global team_1
team_1 = random.sample(online_players, k)
str(team_1)
for x in team_1:
online_players.remove(x)
global team_2
team_2 = online_players
print('Team 1')
print(team_1[0] +'(1)')
print(team_1[1] + '(2)')
print('...')
print(team_1[2] +'(3)' +
'\n')
print('Team 2')
print(team_2[0] + '(4)')
print(team_2[1]+ '(5)')
print(team_2[2]+ '(6)')
这样就成功生成了两个 3 人的团队。这个文件叫做 Team_Generator.py
在另一个名为 team_1_input.py 的文件中,我使用
from Team_Generator.py import team_1,team_2
print(team_1)
当我在控制台中运行它时,它会再次执行整个团队生成器流程,而不仅仅是使用已分配的团队表单 Team_Generator.py
关于如何让它工作以便 team_1_input.py 识别从 Team_Generator.py 分配的团队的任何见解?
谢谢
解决方案
如果这段代码也是你程序的起点,你应该在它周围加上:
if __name__ == "__main__":
# your code here
它将阻止它在导入模块时运行。
然而,通过导入你的主入口点,你创建了一个循环依赖:你的主文件依赖于另一个依赖于主文件的文件!它可以工作,但它会让你的生活变得不必要地复杂。
相反,您绝对应该让您的其他文件公开一个将团队作为参数的函数,并让主文件调用它。
def do_something_about_teams(team_1, team_2):
print(team_1)
在你的主文件中:
from otherfile import do_something_about_teams
# beginning of main, etc...
do_something_about_teams(team_1, team_2)
推荐阅读
- javascript - Router.push 重定向但不渲染页面
- tensorflow-federated - 在 TFF 中:如何保持(或保存)表现最好的“状态”
- laravel - Laravel 制作短网址
- sas - 如何检查变量是否存在于多个数据集中。我需要输出 varname 和数据集名称
- modelica - 为什么我在 Modelica 平台下的这个模型中遇到零误差除法
- angular - Angular 8 中的这些创建服务方法有什么区别?
- c - 从用户读取数字直到给出负数,返回最高、最低、范围和数字计数?
- c# - 无法使用 ID 在 Selenium 中定位元素。能够在一页上获取元素。但是当我在另一个页面上导航时无法找到
- python - 两个不同帐户之间的 S3 数据同步
- java - 如何向现有的 bash 进程发出多个命令?