Skip to content

建立 2026-09-14 更新 2026-09-14

Session State 影片

Session State 是官方少數做成專題短片的主題,值得單獨看完。看之前建議先讀本站 重新執行模型,才知道為什麼普通變數留不住。

Session State basics

頻道:Streamlit(官方)

這支影片在講什麼

官方工程師用具體畫面解釋:Widget 本身已經有狀態,但「跨 rerun 還要自己累加、或讓兩個輸入互相更新」時,就要用 st.session_state

影片會示範這幾件事:

  1. 初始化:先檢查 key 在不在 Session State,再給預設值。漏掉這步,變數每次重跑都會被重設。
  2. Widget 的 key:輸入元件的值可以從 st.session_state["該 key"] 讀出來。
  3. Callbackon_change(滑桿、數字輸入)與 on_click(按鈕、表單送出)會在腳本從頭跑之前先執行。
  4. 雙向換算範例:並排「磅」與「公斤」兩個 st.number_input。改其中一個,callback 就把換算結果寫進另一個的 Session State,另一欄立刻更新。這是最能說明 callback 用途的例子。

看完接著做什麼

自己寫一個計數器,再寫一個兩個單位互相更新的輸入。若行為不對,九成是初始化寫錯或把值放在普通變數裡。文字版整理見 Session State

在 YouTube 開啟