我正在使用
python-statemachine
库来(令人惊讶地)实现状态机。在我们的应用程序中,每个事件发生后状态都会保存到磁盘。
我想要做的是在实例化时将状态的当前值从磁盘分配给状态机。比如:
sm = StateMachine(current_state='saved_state')
似乎应该有一个 API,但我在文档中找不到任何内容。
我确实找到了一种直接访问
current_state_value
属性的方法。我在下面发布了一个可能的答案,但我不喜欢它。欢迎更好的答案!
实现此目的的一种方法是直接分配给
current_state_value
属性,如下所示:
from statemachine import StateMachine, State
class MyStateMachine(StateMachine):
first_state = State('First State', initial=True)
second_state = State('Second State')
sm = MyStateMachine()
sm.current_state_value=sm.second_state.value
然后:
print(sm.current_state)
Second State