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

运行Streamlit分类应用时出现Python NoneType错误求助

问题根因

你定义的add_parameter_ui函数,仅在选择Random Forest分类器的分支下执行了return params操作,当你选择KNN或SVM分类器时,函数执行完对应分支后没有显式返回值,Python会默认返回None,所以你拿到的params变量是None,调用params['K']自然就抛出了不可下标访问的错误。

修复方案

把return params的缩进调整到和三个分支判断同级,让函数不管走哪个分支,最后都返回组装好的参数字典即可,修改后的add_parameter_ui函数代码如下:

def add_parameter_ui(clf_name):
    params = dict()
    if clf_name =="KNN":
        K = st.sidebar.slider("K",1,15)
        params["K"] = K
    elif clf_name =="SVM":
        C = st.sidebar.slider("C", 0.01,10.0)
        params["C"] = C
    else:
        max_depth = st.sidebar.slider("max_depth", 2,15)
        n_estimators = st.sidebar.slider("n_estimators",1,100)
        params["max_depth"]= max_depth
        params["n_estimators"] = n_estimators
    # return逻辑移到所有分支外侧,所有分类器场景都能正常返回参数字典
    return params

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:15:05