在XML文件中使用Python保留字

时间:2017-09-23 15:04:25

标签: python xml reserved-words

我目前正在尝试使用python的(3.6)xml.etree.ElementTree命令来编写xml文件。我需要编写的一些元素和子元素必须具有“id”和“map”字段,这些字段是保留的python单词。

我的问题包含在以下代码行中:

ET.SubElement(messages,'trigger',thing='1',bob='a', max='5')

但“max”是一个功能,我不能使用它。我可以放在那里,让我按照自己的意愿写这个字段吗?或者某种已知的解决方法?

编辑:我知道'_'阻止python处理这个单词,但遗憾的是这个下划线会显示在我的文件中...所以我试图看看是否有一个'隐形'选项文件我稍后会写。

非常感谢!

1 个答案:

答案 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}

我希望这能回答你的问题!