例如,我将 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': '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}")
我想添加一个状态,任何触发器都保持在同一状态,不调用转换,不显式指定每个可能的触发器,也不忽略所有无效的触发器(因为这非常有利于调试) .
例如,我想要一个状态 crystal
,它可以通过从 crystalize
触发 liquid
来达到,对此任何事件都不做任何事情。
这可以通过图书馆实现吗?
表达这个问题的另一种方式是ignore_invalid_triggers=True
仅针对特定状态,而不是所有状态。