gpt4 book ai didi

python - Pytransitions:是否可以更改机器在模型中注入(inject)的模型属性?

转载 作者:行者123 更新时间:2023-12-01 08:10:33 24 4
gpt4 key购买 nike

我正在 retrofit pytransitions状态机插入现有模型,该模型恰好已经有一个名为 status 的列(该模型也恰好是 SQLAlchemy 模型) 。

我注意到转换库注入(inject)了 state字段,但我不确定是否有办法将该字段更改为我模型的 status列并让转换反射(reflect)在该特定字段上。如果目前没有办法,我正在考虑使用 machine.after_state_change回调并从那里开始工作。

除了(ab)使用该特定回调之外,什么是一个不错的解决方法?

最佳答案

从 0.8.3 开始,您可以在机器上指定 model_attribute

>>> from transitions import Machine 
2 class Matter(object):
3 pass
4
5 lump = Matter()
6 transitions = [
7 { 'trigger': 'melt', 'source': 'solid', 'dest': 'liquid' },
8 { 'trigger': 'evaporate', 'source': 'liquid', 'dest': 'gas' },
9 { 'trigger': 'sublimate', 'source': 'solid', 'dest': 'gas' },
10 { 'trigger': 'ionize', 'source': 'gas', 'dest': 'plasma' }
11 ]
12 machine = Machine(
13 model=lump,
14 states=['solid', 'liquid', 'gas', 'plasma'],
15 initial='solid',
16 transitions=transitions,
17 model_attribute='my_state'
18 )

>>> lump.state
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Matter' object has no attribute 'state'

'Matter' object has no attribute 'state'

>>> lump.my_state
'solid'

关于python - Pytransitions:是否可以更改机器在模型中注入(inject)的模型属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55282139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com