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

如何将Gradio组件值传递给函数命名参数?附具体场景示例

解决Gradio组件值传递给函数命名参数的问题

要将txt2的值传递给dummy()的命名参数c,你可以在btn.click()方法中使用字典形式的inputs参数,直接映射组件到目标命名参数,无需按位置传递。

修改后的完整代码

import gradio as gr

def dummy(a, b='Hello', c='!'):
    return '{0} {1} {2}'.format(b, a, c)

with gr.Blocks() as demo:
    txt = gr.Textbox(value="test", label="Query", lines=1)
    txt2 = gr.Textbox(value="test2", label="Query2", lines=1)
    answer = gr.Textbox(value="", label="Answer")
    btn = gr.Button(value="Submit")
    # 使用字典映射组件到函数的命名参数
    btn.click(dummy, inputs={"a": txt, "c": txt2}, outputs=[answer])
    gr.ClearButton([answer])

demo.launch()

关键说明

  • 当inputs是字典时,字典的键对应函数的参数名,值对应Gradio组件,Gradio会自动将组件的当前值传递给对应的命名参数。
  • 未在字典中指定的参数(比如这里的b)会使用函数定义中的默认值Hello。
  • 如果需要同时传递位置参数和命名参数,也可以结合列表和字典,但在这个场景下纯字典的方式更直接清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 21:26:10