gpt4 book ai didi

python - 当我的函数未在Python中指定关键字参数时,为什么会得到 “SyntexError: non-keyword arg after keyworkd arg”?

转载 作者:行者123 更新时间:2023-12-03 08:25:17 32 4
gpt4 key购买 nike

我读到有关位置参数和关键字参数的信息,但我仍然不明白为什么我通过运行以下代码在argargt 之后得到 SyntexError:non-keyword arg。我没有在目标函数中指定任何关键字参数,对吗?

def obj_func(center, P, ACCUM, sentiment):
d = 0
for row in range(ACCUM[sentiment-1],ACCUM[sentiment]):
v = P[row,:]
d += v.dot(center) / (norm(v) * norm(center))
return(-d)

iter_init = np.array([random() for ele in range(k)])
CENTERS = dict()
for sentiment in range(3):
CENTERS[sentiment] = minimize(obj_func, x0=iter_init, args(P,ACCUM,sentiment),)

另外,我不确定minimize()中的最后一个逗号。教程中的人这样写。这是对的吗?

最佳答案

出现此错误消息的原因是,在CENTERS[sentiment] = minimize(obj_func, x0=iter_init, args(P,ACCUM,sentiment),)行中,您具有关键字agrument x0=iter_init,此后,您具有了非关键字参数args(P,ACCUM,sentiment)
这里args是您正在调用的函数,并将其添加为参数返回的值。我敢打赌,您想给名为args的关键字参数一个元组。在这种情况下,您缺少=,正确的语法将是CENTERS[sentiment] = minimize(obj_func, x0=iter_init, args=(P,ACCUM,sentiment))
如果不确定,可以在导入提供该功能的库后通过在Python控制台中说help(minimize)来检查参数。

关于python - 当我的函数未在Python中指定关键字参数时,为什么会得到 “SyntexError: non-keyword arg after keyworkd arg”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61536305/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com