2009-05-15 7 views
3

Я использую SOAPpy для доступа к SOAP Webservice. Этот вызов функции findPathwaysByText работает просто отлично:SOAPpy - зарезервированное слово в списке названных параметров

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

Однако этот вызов функции входа нет:

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

Поскольку передача является зарезервированным словом, питон не будет работать в этом. Есть ли обходной путь?

ответ

5

Вы можете попробовать:

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

Это проходит в данном словаре, как если бы они были ключевыми словами аргументов (**)

1

Вы можете сказать

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

Двойной Звездочка синтаксис здесь применяется именованные аргументы. Вот простой пример, который показывает, что происходит:

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

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