使用 python-statemachine 设置当前状态

问题描述 投票:0回答:1

我正在使用

python-statemachine
库来(令人惊讶地)实现状态机。在我们的应用程序中,每个事件发生后状态都会保存到磁盘。

我想要做的是在实例化时将状态的当前值从磁盘分配给状态机。比如:

sm = StateMachine(current_state='saved_state')

似乎应该有一个 API,但我在文档中找不到任何内容。

我确实找到了一种直接访问

current_state_value
属性的方法。我在下面发布了一个可能的答案,但我不喜欢它。欢迎更好的答案!

python state-machine
1个回答
0
投票

实现此目的的一种方法是直接分配给

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
© www.soinside.com 2019 - 2024. All rights reserved.