gpt4 book ai didi

python - python中如何继承ElementTree.Element类?

转载 作者:行者123 更新时间:2023-11-28 18:44:19 25 4
gpt4 key购买 nike

我尝试定义一个继承 ElementTree.Element 的 NewElement 类。目标是添加更多方法,例如foo1(), foo2(), 到它。

定义新元素类: 将 xml.etree.ElementTree 作为 ET 导入

class NewElement(ET.Element):
def __init__(self):
# Q1: how to init ET.Element? refer to ET's refer guide - http://docs.python.org/2/library/xml.etree.elementtree.html#xml.etree.ElementTree.SubElement
pass
def foo1(self):
# do something on Element
return self
def foo2(self):
# do something else on Element
return self

想这样使用NewElement:

a_element = ET.fromstring(xmlstring)    # Q2: how to generate a NewElement object instead of ET.Element one
a_element.foo1().foo2() # this is my goal to easier use foo1, foo2 functions

问题是

Q1 - 如何初始化 NewElement 的父元素? ET 的引用指南说 ET.Element 可以初始化,但似乎只有元素本身没有 child 。

Q2 - 其他 ET 的类/函数返回 Element,但我期望 NewElement。我需要全部更改吗?

我的方向正确吗?或者改用多重继承?还是使用mixin?如何? ...

感谢您的宝贵意见。

最佳答案

没有必要这样做。只需制作 foo1 foo2 模块级 函数,它接受 Element 的实例并返回实例:

foo2(foo1(a_element))

关于python - python中如何继承ElementTree.Element类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22243529/

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