代码编辑节点

动态代码组件

CanvasMind 支持在节点内直接编写完整的 Python 组件逻辑,无需创建单独的组件文件。

核心特性

  • 自由编程:在节点内直接编写完整 Python 组件逻辑(含 run 方法及辅助函数)

  • 动态端口:通过属性表单自由增删输入/输出端口,支持为输入端口绑定**全局变量默认值**

  • 无缝集成:复用全局变量、表达式系统、依赖自动安装、独立日志、状态可视化等全部核心能力

  • 安全执行:代码在独立子进程运行,支持超时控制、错误捕获与重试

  • 开发友好:专业级代码编辑器(深色主题、语法高亮、智能补全、折叠、错误提示)

代码编辑器界面

../_images/%E4%BB%A3%E7%A0%81%E7%BC%96%E8%BE%91%E6%89%A7%E8%A1%8C%E6%95%88%E6%9E%9C%E7%A4%BA%E6%84%8F%E5%9B%BE.gif

使用示例

  1. 从组件面板拖拽"代码编辑节点"到画布

  2. 在属性面板中点击"编辑代码"按钮

  3. 在代码编辑器中编写组件逻辑:

def run(self, params, inputs=None):
    """
    params: 节点属性(来自UI)
    inputs: 上游输入(key=输入端口名)
    return: 输出数据(key=输出端口名)
    """
    input_data = inputs.get("input_data") if inputs else None
    param1 = params.get("param1", "default_value")
    # 处理逻辑
    result = f"处理结果: {input_data} + {param1}"
    return {
        "output_data": result
    }
  1. 通过属性面板动态增删输入/输出端口

  2. 为输入端口绑定全局变量作为默认值

  3. 右键运行节点查看执行结果和日志