字符串Python的KeyError

2024-09-26 18:17:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个FSM和有一个关键问题

class SimpleFSM(object):
    def __init__(self, char):
        self.char = char
        self.states = {}
        self.transitions = {}
        self.curState = None
        self.trans = None

    def SetState(self,stateName):
        self.curState = self.states[stateName]

    def Transition(self, transName):
        self.trans = self.transitions[transName]

    def Execute(self):
        if(self.trans):
            self.trans.Execute()
            self.SetState(self.trans.toState)
            self.trans = None
        self.curState.Execute()

这是我对密钥的初始化:

light.FSM.states["On"] = LightOn()
light.FSM.states["Off"] = LightOff()
light.FSM.transitions["toOn"] = Transition("On")
light.FSM.transitions["toOff"] = Transition("Off")

我可以更改状态,如果我使用:

light.FSM.Transition("toOff")

但是为什么我用一个带“toOff”的字符串就不起作用呢

lightOn = "toOff"
light.FSM.Transition(lightOn)

sry我是一个新手,对Python没有太多经验


Tags: selfnonetransexecutedeflighttransitionfsm

热门问题