gpt4 book ai didi

python - 对使用类或函数感到困惑 : Writing XML files using lxml and Python

转载 作者:太空狗 更新时间:2023-10-30 01:24:20 26 4
gpt4 key购买 nike

我需要使用 lxml 和 Python 编写 XML 文件。

但是,我无法确定是使用 还是函数来执行此操作。重点是,这是我第一次开发合适的软件,决定在何处以及为何使用 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)

使用类而不是函数主要是为了在类的实例中保持状态(在极少数用例中,如果不需要状态保持,类就有意义),它具有与您的问题无关 - 如代码所示,您的问题只是您没有将任何名称绑定(bind)到 SubElement 调用返回的元素,因此您当然无法进一步操作该元素(例如,通过设置其 text 属性)在您的函数的其余部分。

关于python - 对使用类或函数感到困惑 : Writing XML files using lxml and Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2892528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com