[英]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.