ich zur Zeit ein Problem mit meinem Text-Adventure-Code habe, läuft das Programm vollkommen in Ordnung, aber wenn der Charakter sterben aufwickelt, ruft das Programm diese Fehler:Wie ein NoneType Fehler passiert
NextSceneName = CurrentScene.enter()
AttributeError: 'NoneType' object has no attribute 'enter'
Die Programm wird danach abstürzen, was keine große Sache für sich ist.
Der Code für diesen Teil des Programms ist:
def play(self):
CurrentScene = self.sceneMap.OpeningScene()
LastScene = self.sceneMap.NextScene('Finished')
while CurrentScene != LastScene:
NextSceneName = CurrentScene.enter()
CurrentScene = self.sceneMap.NextScene(NextSceneName)
CurrentScene.enter()
Was will ich weiß, ist, wie kann ich so etwas wie eine If-Anweisung verwenden oder einen Try Außer Aussage der NoneType/Attribute passieren?
von Ihrem Code kann ich sagen, dass, wenn Sie 'if..else' Block dann wird es immer zu' else' gehen und wenn Sie 'try..except' Blockflusskontrolle verwenden geht immer zu außer Block, weil Sie versuchen, auf die Methode 'enter()' zuzugreifen, die für Ihr Klassenobjekt 'CurrentScene' nicht verfügbar ist, sollten Sie angeben, was das ist oder ob Sie tatsächlich bei jedem Testfall ausgegeben wurden? Wenn Sie Probleme mit der Ausgabe haben, dann schreiben Sie Ihre Wunschausgabe. – Gahan
Derzeit habe ich die gewünschte Ausgabe, die ich brauche, da das Text-Abenteuer in der richtigen Reihenfolge ist, alles, was ich tun möchte, ist den Fehler vollständig übergeben, so dass es nicht erscheint, wenn eine Todesszene passiert – user8119607
oh! Verwenden Sie dann Ihre Anweisung in try block und action on failure in außer block for statement, wo Sie die Möglichkeit haben, einen Fehler zu erhalten. – Gahan