2017-01-23 73 views
0

attribextra参数xml.etree.ElementTree.Element(tag, attrib={}, **extra)可用于设置元素属性,但attrib应该给出一个字典和extra给出的关键字参数,它们几乎有相同的效果,例如,xml.etree.ElementTree.Element(tag,attrib = {},** extra)的`attrib`和`extra`参数之间的区别

>>> from xml.etree.ElementTree import * 
>>> tostring(Element('ref', attrib={'text1': 'KCTV'}), 'utf-8') 
b'<ref text1="KCTV" />' 
>>> tostring(Element('ref',text1= 'KCTV'), 'utf-8') 
b'<ref text1="KCTV" />' 
>>> 

我看不出这两者之间有什么区别,(1)有什么区别? (2)每个参数用于什么?

回答

0

看看源,他们合并在一起:

attrib.update(extra) 

https://hg.python.org/cpython/file/tip/Lib/xml/etree/ElementTree.py#l172

它一直在那里,因为ElementTree的是第三方库支持的Python 1.5.2。

人们可能会想到,为了方便起见,这里有一个属性字典可能很常见,但它也应该符合人体工程学,用一些属性名称编写一个字面函数调用,所以这两种情况都不需要额外的标点。