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
相关产品推荐
相关产品推荐

