赞
踩
在编写gradio的时候希望可以实时输出状态(控制台或者数字)
但是遇到了直接调用函数失效的情况。
经过折腾后,了解了正确构造的方式,现以一个demo来演示
- import gradio as gr
- from datetime import datetime
-
-
- # 定义一个函数,返回当前的日期和时间。
- def current_time():
- def inner():
- now = datetime.now()
- current_time = now.strftime("%Y-%m-%d %H:%M:%S")
- return f"欢迎使用,当前时间是: {current_time}"
- return inner
-
- # 使用gr.Blocks创建一个Gradio
- with gr.Blocks() as demo:
-
- gr.Markdown("# Gradio实时输出的实现")
- out_1 = gr.Textbox(label="实时状态",
- value=current_time(),
- every=1,
- info="当前时间",)
- # 启动
- demo.launch()
可以看到,需要嵌套一个def来正确调用
这个def的功能是这样的
- inner_function = current_time()
-
- inner_function()
-
- #输出:'欢迎使用,当前时间是: 2023-11-06 22:25:26'
也就是经过这样写,传给Value的是一个函数而不是一个结果。
Gradio也就能正常调用了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。