jianmu.tree¶
适用对象:行为树使用者 / 自定义树结构开发者 / 高阶节点作者
是否必读:按需
相关模块:jianmu, jianmu.node
1. 模块职责¶
jianmu.tree 是 jianmu 对行为树原语的官方导入入口,用来承接常用的 py_trees 能力。
目标很明确:
- 使用
jianmu时不必把常用树原语继续从py_trees直接导入 - 把框架核心原语和行为树原语拆成两个清晰层级
2. 适合查什么¶
- 组合子:
Sequence、Selector、Parallel、Composite - 状态与树:
Status、BehaviourTree - 树层基类:
Behaviour、Decorator - 常用树装饰器:
Inverter、FailureIsSuccess、SuccessIsFailure - 常用树配置:
ParallelPolicy、Duration
3. 使用建议¶
- 新代码里,行为树原语统一从
jianmu.tree导入 - 如果你写的是
jianmu业务节点,仍优先看jianmu.node jianmu.tree.Behaviour/Decorator对应的是py_trees这一层;带状态注入语义的节点基类在jianmu.node.basejianmu顶层对树原语的旧导出仅用于兼容迁移,不应继续作为主路径
这里要特别区分两层概念:
jianmu.tree.Behaviour/Decorator是原始行为树层jianmu.Node/jianmu.AsyncNode是jianmu运行时语义层
如果你的节点需要 state_manager、运行时依赖注入或 jianmu 节点语义,优先使用后者。
4. 常见导入¶
from jianmu.tree import Sequence, Selector, Parallel, Status
from jianmu.tree import BehaviourTree, Inverter, ParallelPolicy
5. 最小示例¶
from jianmu.tree import BehaviourTree, Sequence, Status
root = Sequence(name="Root", memory=True, children=[node_a, node_b])
tree = BehaviourTree(root)
tree.tick()
assert root.status in {Status.SUCCESS, Status.FAILURE, Status.RUNNING}
6. 常见入口¶
- 想拿组合子:看
Sequence、Selector、Parallel - 想看树执行状态:看
Status - 想做原始
py_trees层扩展:看Behaviour、Decorator - 想写带
jianmu运行时语义的节点:回到jianmu.Node/jianmu.AsyncNode
7. API 参考¶
tree
¶
Behavior tree primitives re-exported by jianmu.
This module is the official py_trees-level import surface for jianmu.
Use it for standard behavior-tree building blocks without importing
py_trees directly.