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

Streamlit按钮on_click函数未点击即执行问题求助

Streamlit按钮点击前脚本提前执行的问题解决

你的问题出在**st.button的on_click参数传递方式**上:

  • 你写的on_click=create_packs()是直接调用了函数,Python在加载页面时就会立即执行create_packs(),而不是等到按钮被点击时才触发。
  • on_click参数需要接收的是函数对象,而不是函数执行后的返回值。

修正后的代码:

import streamlit as st
from level_packs import create_packs
st.set_page_config(page_title="Main work", page_icon="💻")

st.markdown("# Main work")

# 去掉函数后的括号,传递函数本身
st.button('Run script', on_click=create_packs)

如果你的create_packs函数需要传入参数,可以用args或kwargs参数来传递:

# 示例:传递位置参数
st.button('Run script', on_click=create_packs, args=(arg1, arg2))

# 示例:传递关键字参数
st.button('Run script', on_click=create_packs, kwargs={"key1": val1, "key2": val2})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 01:35:24