使用python reserved关键字作为变量名

时间:2016-09-07 16:22:29

标签: python django web-services python-3.x

我试图使用网络服务发送短信,这就是网络服务文档的建议:

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

公平地说他们没有python文件只有php / asp所以我已经从他们的php示例中转换了这个但是和我不同,有些人可能知道pass是python的保留关键字

所以我不能有变量名pass becuz我得到语法错误!

有没有办法解决这个问题,或者我应该切换到另一个网络服务?我希望我们可以将变量名称放在引号或其他内容

2 个答案:

答案 0 :(得分:8)

您可以使用**dictionary调用语法将任意字符串作为关键字参数传递:

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

如果需要,可以将所有关键字参数移动到字典中,并在应用之前将该字典分配给变量。

答案 1 :(得分:5)

也许尝试这样:

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