Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 我有没有办法从python3中的另一个文件加载代码?_Python 3.x - Fatal编程技术网

Python 3.x 我有没有办法从python3中的另一个文件加载代码?

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

我现在正在制作一个基于文本的python游戏。我试着做一个保存功能,这样你就可以从上次玩的地方继续玩下去。我的设置方式是,我在ingame中所做的不同选择都保存到一个外部文件中。有没有一种方法可以让它读取该文件,并让它显示“story\u start\u eatbreakfeat()”和主文件,然后调用该函数

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()
启动。如果保存文件不存在,请不要忘记默认值。