我目前正在尝试使用python的(3.6)xml.etree.ElementTree命令来编写xml文件。我需要编写的一些元素和子元素必须具有“id”和“map”字段,这些字段是保留的python单词。
我的问题包含在以下代码行中:
ET.SubElement(messages,'trigger',thing='1',bob='a', max='5')
但“max”是一个功能,我不能使用它。我可以放在那里,让我按照自己的意愿写这个字段吗?或者某种已知的解决方法?
编辑:我知道'_'阻止python处理这个单词,但遗憾的是这个下划线会显示在我的文件中...所以我试图看看是否有一个'隐形'选项文件我稍后会写。非常感谢!
答案 0 :(得分:0)
Python函数在关键字表达式的左侧没有问题:
>>> def abc(**kwargs):
print kwargs
>>> abc(id=2)
{'id': 2}
>>>
id,map,int,float,str,repr等是用符号构建的,而不是保留字。您可以像使用其他任何字母一样使用它们,但为其指定另一个值会替换内置符号:
>>> int(2.5)
2
>>> int = "5"
>>> int(2.5)
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
int(2.5)
TypeError: 'str' object is not callable
注意第一行是完全合法的,但是如果你有一个像pycharm这样的好的IDE会触发警告。
如果要将实际保留字发送给函数(如print,None,yield或try),可以使用双星**将字典转换为关键字参数,例如:
>>> abc(**{"print":2, "None":3})
{'print': 2, 'None': 3}
我希望这能回答你的问题!