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

Python函数中如何给可选参数传递位置参数?梯度下降代码报错咨询

解决Python函数默认参数依赖输入参数的问题

为什么你的代码会报错?

Python函数的默认参数是在函数定义阶段就会被计算,而非调用阶段。你写w0=np.zeros(X.shape[1])时,定义函数的时刻X还未被传入,自然会提示X未定义。

正确的写法

把w0的默认值设为None,在函数内部根据X的形状生成初始参数:

import numpy as np

def gradient_descent(X, w0=None):
    # 如果没传入w0,就根据X的列数生成零数组
    if w0 is None:
        w0 = np.zeros(X.shape[1])
    # 这里编写你的梯度下降逻辑代码

关于可选参数传递位置参数的问题

Python完全支持给可选参数传递位置参数,只要参数的位置和函数定义里的顺序对应即可。比如上面的函数,调用时直接写gradient_descent(my_X, my_initial_w),就是把my_initial_w作为位置参数传给w0。你也可以用关键字参数gradient_descent(my_X, w0=my_initial_w),两种方式都合法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 02:45:35