如何解释Python文档中的“额外”

时间:2013-03-03 22:08:16

标签: python

在文档中,给出了以下行来描述如何启动类对象

class xml.etree.ElementTree.Element(tag, attrib={}, **extra)

在那之下有一行说

  

extra包含其他属性,以关键字参数的形式给出。

我一直在尝试,但我不确定这究竟是什么意思。例如,我想添加文本属性,但它无法正常工作。我的论点似乎是转到 attrib 属性。

以下是示例代码以突出显示我的问题

>>> import xml.etree.ElementTree as ET
>>> tree = ET.Element('Level 0',text = 'test text')
>>> tree.attrib #This should be empty
{'text': 'test text'}
>>> tree.text #test text should be here
>>> 

以下是文档的链接以供参考。

http://docs.python.org/3.3/library/xml.etree.elementtree.html#element-objects

1 个答案:

答案 0 :(得分:2)

这是完全正确的。 XML标记属性存储在Element.attrib结构中。

然后,当您将ElementTree结构输出到XML时,.attrib值将用于生成XML属性:

>>> elem = ET.Element('Level0', text='test text')
>>> ET.tostring(elem)
'<Level0 text="test text" />'

函数签名中的**keywords语法捕获函数调用的其他关键字参数;您可以传入显式字典,您可以使用关键字参数来定义属性。请参阅function definitions documentation

因此,以下两种形式是等效的(对于ElementTree.Element()次调用):

ET.Element('Level0', text='test text')

ET.Element('Level0', {'text': 'test text'})