2016-09-07 2 views
1

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

response = client.service.SendSMS( fromNum = '09999999' , 
       toNum = '0666666666666', 
       messageContent = 'test', 
       messageType = 'normal', 
       user = 'myusername', 
       pass = '123456' , 
      ) 

быть справедливыми они не имеют документа для питона только PHP/ASP, поэтому я преобразовали это из своего образца php, но, как я могу сказать, некоторые могут знать, что pass является зарезервированным ключевым словом python

поэтому я не могу иметь переменное имя pass becuz Я получаю синтаксическую ошибку!

Есть ли способ вокруг trhis или я должен переключиться на другой веб-сервис? я хотел, чтобы мы могли поместить имена переменных в кавычки или что-то

+0

Может быть, аргумент должен быть словарем, а не отдельными параметрами? – Barmar

+1

У них есть API Python, но нет подробной документации о том, как его использовать? – Barmar

+0

Из документов https://docs.python.org/3/reference/lexical_analysis.html#keywords. Зарезервированные слова ** не могут использоваться ** как обычные идентификаторы – cjds

ответ

7

Вы можете передать в произвольных строк в качестве ключевых аргументов, используя синтаксис **dictionary вызова:

response = client.service.SendSMS( fromNum = '09999999' , 
       toNum = '0666666666666', 
       messageContent = 'test', 
       messageType = 'normal', 
       user = 'myusername', 
       **{'pass': '123456'} 
      ) 

Вы можете переместить все аргументы ключевого слова в словарь, если хотите, и назначить этот словарь переменной перед применением.

5

Может попробовать так:

sms_kwargs = { 
    'toNum': '0666666666666', 
    'messageContent': 'test', 
    'messageType': 'normal', 
    'user': 'myusername', 
    'pass': '123456' 
} 
response = client.service.SendSMS(**sms_kwargs) 
Смежные вопросы