2017-01-23 58 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。

人們可能會想到,爲了方便起見,這裏有一個屬性字典可能很常見,但它也應該符合人體工程學,用一些屬性名稱編寫一個字面函數調用,所以這兩種情況都不需要額外的標點。