web-dev-qa-db-ja.com

Python:SyntaxError:キーワードを式にすることはできません

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

ここで何が間違っていたのでしょうか?

34
Ricky Robinson

sum.upは有効なキーワード引数名​​ではありません。キーワード引数は有効な識別子でなければなりません。この引数reallyがどのように呼び出されるかを使用しているライブラリのドキュメントを参照する必要があります。おそらくsum_up

27
Sven Marnach

このページに来た私たちの多くがScikit Learn、に問題があると思います。それを解決する1つの方法は、パラメーター付きの辞書を作成し、モデルに渡すことです。

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

それはpython sum.up=False sum.upとしての名前付き引数は有効な引数名ではありません(ドットは使用できません。引数名には英数字とアンダースコアのみを使用できます)。

7
Vladimir

Elastic search 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"}})
3
Bob Yoplait

_%_フォーマットから.format()に変換するときに問題が発生しました。

前のコード:

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

問題のある構文:

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

問題は、formatがパラメーターを必要とする関数であることです。文字列にすることはできません。それは最悪のpython私が今まで見たエラーメッセージの一つです。

修正されたコード:

_"SET !TIMEOUT_STEP {USER_TIMEOUT_STEP}".format(USER_TIMEOUT_STEP = 3)
_
1
Marcin Wojtczuk