44

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

ここで何がうまくいかなかったのですか?

4

5 に答える 5

38

sum.upは有効なキーワード引数名​​ではありません。キーワード引数は有効な識別子である必要があります。この引数が実際にどのように呼ばれるかを使用しているライブラリのドキュメントを確認する必要があります-多分sum_up

于 2012-07-24T14:48:17.033 に答える
23

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

params = {'C': 1e9, 'gamma': 1e-07}
cls = SVC(**params)    
于 2017-08-20T12:54:45.773 に答える
8

sum.up=Falsesum.upは有効な引数名ではないため、名前付き引数でのPythonソースパーサーの失敗です(ドットは使用できません。引数名には英数字とアンダースコアのみが使用されます)。

于 2012-07-24T14:49:48.453 に答える
5

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"}})
于 2017-12-06T19:58:16.980 に答える
3

%フォーマットからに変換するときに問題が発生しました.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エラーメッセージの1つです。

修正されたコード:

"SET !TIMEOUT_STEP {USER_TIMEOUT_STEP}".format(USER_TIMEOUT_STEP = 3)
于 2014-03-24T10:34:27.323 に答える