Python 3.x 我有没有办法从python3中的另一个文件加载代码?
我现在正在制作一个基于文本的python游戏。我试着做一个保存功能,这样你就可以从上次玩的地方继续玩下去。我的设置方式是,我在ingame中所做的不同选择都保存到一个外部文件中。有没有一种方法可以让它读取该文件,并让它显示“story\u start\u eatbreakfeat()”和主文件,然后调用该函数Python 3.x 我有没有办法从python3中的另一个文件加载代码?,python-3.x,Python 3.x,我现在正在制作一个基于文本的python游戏。我试着做一个保存功能,这样你就可以从上次玩的地方继续玩下去。我的设置方式是,我在ingame中所做的不同选择都保存到一个外部文件中。有没有一种方法可以让它读取该文件,并让它显示“story\u start\u eatbreakfeat()”和主文件,然后调用该函数 def story_beginning_eatbreakfeast(): os.system("cls") f = open("save.py", "w") glo
def story_beginning_eatbreakfeast():
os.system("cls")
f = open("save.py", "w")
global Color
global Gender
global Weight
global Food_eaten
f.write("Color = " + str(Color) + "\n")
f.write("Gender = " + str(Gender) + "\n")
f.write("Weight = " + str(Weight) + "\n")
f.write("Food_eaten = " + str(Food_eaten) + "\n")
f.write("story_beginning_eatbreakfeast()" + "\n")
最常见的方法(我见过或使用过)是使用json模块对状态数据结构进行编码和写入,然后稍后读取和解码,但由于所有信息都是离散的全局数据,因此这对您不起作用。我建议您将数据收集到一个单独的字典(或类,如果您觉得有意义的话)中,这样您就可以做到这一点。这样,您就可以处理保存和恢复状态的问题,而无需代码了解数据的每一个细节。
很明显,你才刚刚开始。试着找一本更好的编程书。好的做法是使保存状态等操作尽可能简单,这意味着在更改数据时(如果不更改数据),不必重写它们 很抱歉,如果这个问题很难理解,我会尝试这样做:启动主程序,尝试查找以前创建的“保存文件”,并在其中查找“重新启动点”函数的名称。然后,如果您的函数在一个类中,您可以通过调用
start=getattr(self,“story\u start\u eatbreant”)
定义start,并在需要时通过调用start()
启动。如果保存文件不存在,请不要忘记默认值。