2013-03-03 53 views
0

在文档以下行给出描述如何启动类对象如何解释“额外”的Python文档

class xml.etree.ElementTree.Element(tag, attrib={}, **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

你需要证明你正在使用的代码。 – BrenBarn 2013-03-03 22:08:43

回答

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'}) 
+0

所以我想我的问题是**额外的意思是什么? – canyon289 2013-03-03 22:12:14

+0

你的意思是语法'**'?这是一个catch-all关键字参数语法。 – 2013-03-03 22:13:11

+0

我的意思不是麻烦,但你能提供正确使用关键字参数语法的例子吗?或者如何使用它的链接?感谢您的帮助! – canyon289 2013-03-03 22:14:00