请考虑以下代码作为问题示例。
class State:
START: State = StartState() # Problem Here - StartState
END: State = EndState() # Problem Here - EndState
@classmethod
def get_current(cls, context: Context) -> "State":
if context.just_beginning :
return cls.START
return cls.END
class StartState(State):
...
class EndState(State):
...
由于 StartState 和 EndStart 未定义,代码无法运行。
但是,我无法将 StartState 和 EndState 移动到 State 之上,因为 State 没有定义。
请指导我在 Python 中执行此操作。
也许对您的问题进行一些解释可能会有所帮助。但这里有一个代码片段可以帮助您:
class State:
START: "State"
END: "State"
@classmethod
def get_current(cls, context: "Context") -> "State":
if context.just_beginning:
return cls.START
return cls.END
class StartState(State):
...
class EndState(State):
...
State.START = StartState()
State.END = EndState()
您可以首先在类中声明 State.START 和 State.END 类型..然后一旦您的类结束,您可以通过调用 StartState() 和 EndState() 函数来初始化值