[英]Confused as to use a class or a function: Writing XML files using lxml and Python
我需要使用lxml和Python編寫XML文件。
但是,我無法弄清楚是否使用class
來執行此操作或函數。 關鍵是,這是我第一次開發一個合適的軟件,並決定在哪里以及為什么使用一個class
似乎仍然是神秘的。
我會說明我的觀點。
例如,考慮我編寫的以下基於函數的代碼,用於將子元素添加到etree根目錄。
from lxml import etree
root = etree.Element('document')
def createSubElement(text, tagText = ""):
etree.SubElement(root, text)
# How do I do this: element.text = tagText
createSubElement('firstChild')
createSubElement('SecondChild')
正如預期的那樣,這個輸出是:
<document>
<firstChild/>
<SecondChild/>
</document>
但是,您可以注意到注釋,我不知道如何使用此方法設置文本變量。
使用class
是解決這個問題的唯一方法嗎? 如果是的話,你能給我一些關於如何實現這一目標的指示嗎?
以下代碼有效:
def createSubElement(text, tagText = ""):
elem = etree.SubElement(root, text)
elem.text = tagText
createSubElement('firstChild', 'first one')
createSubElement('SecondChild', 'second one')
print etree.tostring(root)
使用類而不是函數主要與在類的實例中保持狀態有關(在極少數用例中,如果不需要保持狀態 ,則類會有意義),這與您的問題無關 - 如代碼顯示,您的問題只是您沒有將任何名稱綁定到從SubElement
調用返回的元素,因此當然您無法在函數的其余部分中進一步操作該元素(例如,通過設置其text
屬性)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.