Подтвердить что ты не робот

Python: СинтаксисError: ключевое слово не может быть выражением

В Python script я вызываю функцию из 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

Что именно здесь случилось?

4b9b3361

Ответ 1

sum.up не является допустимым именем аргумента ключевого слова. Аргументы ключевого слова должны быть действительными идентификаторами. Вы должны посмотреть в документации библиотеки, которую используете, как этот аргумент действительно называется - возможно sum_up?

Ответ 2

Ошибка исходного парсера python на sum.up=False с именем аргумент, поскольку sum.up не является допустимым именем аргумента (вы не можете использовать точки - только буквенно-цифровые символы и символы подчеркивания в именах аргументов).

Ответ 3

Я думаю, что многие из нас, которые пришли на эту страницу, столкнулись с проблемой Scikit Learn,, один из способов ее решения - создать словарь с параметрами и передать его модели:

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

Ответ 4

Используя API-интерфейс DSL для поиска эластичности, вы можете получить ту же ошибку с помощью

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"}})

Ответ 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 - это функция, которая нуждается в параметрах. Они не могут быть струнами. Это один из худших сообщений об ошибках на Python, которые я когда-либо видел.

Исправленный код:

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