如何让Python在类之间记住用户输入?
我是一名初学者,正在做一个基于文本的游戏,很多初学者似乎都在做类似的事情。我使用的是《Learn Python The Hard Way》中的游戏结构,每个游戏场景都是一个独立的类。简单来说,就是这样的:http://learnpythonthehardway.org/book/ex43.html
我遇到的问题是:我想让玩家通过提示来给主角起个名字,并且这个名字在整个游戏中都能被记住和调用。正如上面所说,游戏的进展是通过一系列的类来实现的。目前我所知道的唯一输入记忆方法是,用户输入的名字只在一个类(场景)中被记住,到了下一个类就忘记了。我甚至不知道该从哪里开始解决这个问题,让名字在整个游戏或一系列类中都能持续使用——我该搜索什么术语,或者该研究哪些内容等等。
我现在唯一知道的记住/调用名字的方法是
name = raw_input ("Name: ")
print "My name is %s" % name
这种方式。但这种方法在类之间不连续,所以在下一个“场景”中就会忘记。
1 个回答
2
简单来说:显然,你需要把这些数据保存在你的类之外。你可以通过几种方式来做到这一点:
你可以把它保存到一个全局变量里。
你可以把它保存到一个单独的类或者变量中,然后把它传来传去。
这是个更哲学的问题:在你的游戏中,为什么“场景”这个“东西”需要用户的名字呢?听起来这个问题应该放在别的地方讨论。你应该把相关的东西分成属于同一类的类。也许可以考虑创建一个“用户”类?