我是python的新手,我正在创建游戏之类的垄断产品,并且正在程序的设置方面工作,并且我有一个函数可以询问用户我想为每个设置输入什么内容然后使用另一个功能将这些设置导入到文本文件中,以便可以将其存储以供以后使用,也可以让程序将其用作设置。这是我遇到的问题所在,我预计会设置大约15个左右的问题,这是我想到将其带出另一个函数所用的函数并将其导入全局范围以便使用的唯一方法。在程序中,是使用return是否还有另一种方法,或者我只需要对每个变量使用return
谢谢
# Settings file, if user chooses to run setup this is all the setup
questions
def gameSettingsSetup():
print("Lets setup")
numPlayers = int(input("How many real players are playing: "))
numAIplayers = int(input("How many AI players will be playing?:
"))
AILevel = input("What AI difficulty level would you like?: ")
# Game settings all the main game settings
# sends over the settings into the text file
def gameSettingsSave():
答案 0 :(得分:2)
不要在使用global
的方法之间共享变量;使其成为对象属性。
class Game:
def __init__(self):
self.questions = []
self.ai_level = 'easy'
全局变量导致难以推理的各种方法之间的耦合。 今天,您可以了解代码, 但它成长几周后,将变成完全不同的野兽。
另外,关于使用snake_case
作为方法和变量名,请遵循PEP-8的建议:
def game_settings_setup(self):
print("Let's setup.")
self.num_players = int(...)
self.num_ai_players = int(...)
self.ai_level = ...
帮个忙。
运行$ pip install flake8
,然后运行$ flake8 *.py
,以获取有关您编写的代码的提示。
遵循flake8的建议,进行建议的编辑。
答案 1 :(得分:1)
你可以做
return numPlayers, numAIplayers, AILevel
,但是将所有设置存储在字典中可能会更容易:
def gameSettingsSetup():
print("Lets setup")
settings = {}
settings["numPlayers"] = int(input("How many real players are playing: "))
setting["numAIplayers"] = int(input("How many AI players will be playing?: "))
settings["AILevel"] = input("What AI difficulty level would you like?: ")
return settings
然后,您可以将settings
词典传递给需要它的任何函数,也可以轻松地将其全部保存到磁盘。
答案 2 :(得分:0)
numPlayers = 0
def gameSettingsSetup():
global numPlayers
numPlayers = ...
通过使用global
,您可以将全局变量拉入函数并进行修改。