也许对您的问题进行一些解释可能会有所帮助。但这里有一个代码片段,可能会对您有帮助:
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()
函数来初始化这些值。这样,你就可以在类中使用开始和结束状态的实例,同时保持代码的结构清晰并允许扩展其他状态类。