You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yakindu中Slave状态机如何响应Master事件并解决Python引用为None问题

问题原因

你只声明了状态机引用变量的类型,没有手动为变量赋值,生成的Python代码会默认将这类引用属性初始化为None,这不是Python绑定的问题,属于遗漏了手动绑定引用的步骤。

解决方法

方案1:Slave监听Master事件实现需求

  • 保留你原有Slave状态机的配置不变:
import: "Master.ysc"
var master: Master
# 过渡规则保持master.B触发跳转到StateB即可
  • 在业务代码中实例化两个状态机后,启动状态机前手动为Slave的master属性赋值:
# 先实例化两个状态机
master = Master()
slave = Slave()
# 手动绑定引用
slave.master = master
# 绑定完成后再启动状态机
master.start()
slave.start()

完成以上步骤后,Slave即可正常识别Master触发的B事件,完成状态跳转。

方案2:Master主动触发Slave事件实现需求

  • 保留你原有Master状态机的配置不变:
import: "Slave.ysc"
var slave: Slave
# 触发逻辑保持raise slave.goto_b即可
  • 在业务代码中实例化两个状态机后,启动状态机前手动为Master的slave属性赋值:
# 先实例化两个状态机
master = Master()
slave = Slave()
# 手动绑定引用
master.slave = slave
# 绑定完成后再启动状态机
master.start()
slave.start()

如果需要双向交互,同时绑定两个属性即可:

master = Master()
slave = Slave()
master.slave = slave
slave.master = master
master.start()
slave.start()

内容的提问来源于stack exchange,提问作者ketla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:54:04