例如,我正在使用Pytransitions,并且我有一些状态机
from transitions import Machine
from transitions import EventData
class Matter(object):
def __init__(self):
transitions = [
{'trigger': 'heat', 'source': 'solid', 'dest': 'liquid'},
{'trigger': 'heat', 'source': 'liquid', 'dest': 'gas'},
{'trigger': 'cool', 'source': 'gas', 'dest': 'liquid'},
{'trigger': 'cool', 'source': 'liquid', 'dest': 'solid'}
]
self.machine = Machine(
model=self,
states=['solid', 'liquid', 'gas'],
transitions=transitions,
initial='solid',
send_event=True
)
def on_enter_gas(self, event: EventData):
print(f"entering gas from {event.transition.source}")
def on_enter_liquid(self, event: EventData):
print(f"entering liquid from {event.transition.source}")
def on_enter_solid(self, event: EventData):
print(f"entering solid from {event.transition.source}")
是否有一些图书馆支持的方式来跟踪所有州的历史?
我现在手动做的是初始化:
after_state_change=lambda event: self._on_after_state_change(event)
和
def _on_after_state_change(self, event: EventData):
to_state = event.transition.dest
self._history_df.append({
"start_index": self._index,
"state": to_state
}, ignore_index=True)
我想知道该库是否支持一些可查询的日志记录,这意味着不仅将事件转储到文件中,而且还能够将它们保存在列表中。