Python: SyntaxError: trefwoord kan geen uitdrukking zijn

In een Python-script roep ik een functie aan van rpy2, maar ik krijg deze foutmelding:

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

Wat ging hier precies mis?


Antwoord 1, autoriteit 100%

sum.upis geen geldige argumentnaam voor zoekwoorden. Zoekwoordargumenten moeten geldige ID’s zijn. Je zou in de documentatie van de bibliotheek die je gebruikt moeten kijken hoe dit argument echtwordt genoemd – misschien sum_up?


Antwoord 2, autoriteit 61%

Ik denk dat velen van ons die naar deze pagina zijn gekomen een probleem hebben met Scikit Learn, een manier om het op te lossen is door een woordenboek met parameters te maken en dit door te geven aan het model:

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

Antwoord 3, autoriteit 21%

Het is een python-bronparserfout op sum.up=Falsegenoemd argument omdat sum.up geen geldige argumentnaam is (u kunt geen punten gebruiken — alleen alfanumerieke tekens en onderstrepingstekens in argumentnamen).


Antwoord 4, autoriteit 13%

Als u de Elastic search DSL API gebruikt, kunt u dezelfde fout tegenkomen met

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

Je kunt het oplossen door te doen:

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

Antwoord 5, autoriteit 8%

Ik kreeg net dat probleem bij het converteren van de opmaak %naar .format().

Vorige code:

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

Problematische syntaxis:

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

Het probleem is dat formateen functie is die parameters nodig heeft. Het kunnen geen snaren zijn.
Dat is een van de ergste python-foutmeldingen die ik ooit heb gezien.

Gecorrigeerde code:

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

Other episodes