在编写一个streamlit代码时,发现有一个变量会在几个函数中使用,可是可这个变量如果定义在外的话,每个函数调用改变它后,虽的函数再调用,这个变量并不是上次改过的值,值还是初始化时赋的值。比如 代码一
1 | import streamlit as st |
肿么才能避免呢? 采用 st.session_state,streamlit把它叫做 ”会话状态“
1 | import streamlit as st |
一. 采用 “会话状态”,那么代码一可以改为代码二
1 | import streamlit as st |
二. 使用 “会话状态” 与 “回调函数” 来修改代码一
1 | import streamlit as st |
三. 以上的回调函数是木有参数的,那么如果有参数呢?
1. 使用 args 小部件来传递参数
1 | import streamlit as st |
2. 使用 kwargs 传递命名参数
1 | import streamlit as st |
四. 会话状态(全局变量)与 小部件中的值关联,采用 “key” 参数
1 | import streamlit as st |