SOAPpy - reserved word in named parameter list

2019-07-01 14:28发布

问题:

I'm using SOAPpy to access a SOAP Webservice. This call to the function findPathwaysByText works just fine:

server.findPathwaysByText (query= 'WP619', species = 'Mus musculus')

However, this call to the function login does not:

server.login (user='amarillion', pass='*****')

Because pass is a reserved word, python won't run this. Is there a workaround?

回答1:

You could try:

d = {'user':'amarillion', 'pass':'*****' }
server.login(**d)

This passes in the given dictionary as though they were keyword arguments (the **)



回答2:

You can say

server.login(user='amarillion', **{'pass': '*****'})

The double-asterix syntax here applies keyword arguments. Here's a simple example that shows what's happening:

def f(a, b):
    return a + b

kwargs = {"a": 5, "b": 6}
return f(**kwargs)        # same as saying f(a=5, b=6)