的Python:语法错误:关键字不能表达(Python: SyntaxError: keyword

2019-06-26 12:17发布

在一个Python脚本我称之为从功能rpy2 ,但我得到这个错误:

#using an R module 
res = DirichletReg.ddirichlet(np.asarray(my_values),alphas,
                              log=False, sum.up=False) 
SyntaxError: keyword can't be an expression

究竟是什么出了问题吗?

Answer 1:

sum.up不是有效的关键字参数名称。 关键字参数必须是有效的标识符。 你应该看看该库的文档中使用的是如何这个说法真的叫-也许sum_up



Answer 2:

我想我们很多人谁来到这个页面有Scikit问题学习,解决这个问题的一种方法是创建一个带参数的字典,并传递到模型:

params = {'C': 1e9, 'gamma': 1e-07}
cls = SVC(**params)    


Answer 3:

这是对Python源代码分析器失败sum.up=False命名参数作为sum.up不是有效的参数名称(不能使用点-只有字母,数字和参数名称下划线)。



Answer 4:

使用弹性搜索DSL API,你可以击中了同样的错误

s = Search(using=client, index="my-index") \
    .query("match", category.keyword="Musician")

您可以通过执行解决它:

s = Search(using=client, index="my-index") \
    .query({"match": {"category.keyword":"Musician/Band"}})


Answer 5:

从转换时,我刚刚得到这个问题%格式到.format()

以前的代码:

"SET !TIMEOUT_STEP %{USER_TIMEOUT_STEP}d" % {'USER_TIMEOUT_STEP' = 3}

有问题的语法:

"SET !TIMEOUT_STEP {USER_TIMEOUT_STEP}".format('USER_TIMEOUT_STEP' = 3)

问题是, format是需要参数的函数。 它们不能是字符串。 这是我见过的最糟糕的蟒蛇错误消息之一。

更正后的代码:

"SET !TIMEOUT_STEP {USER_TIMEOUT_STEP}".format(USER_TIMEOUT_STEP = 3)


文章来源: Python: SyntaxError: keyword can't be an expression