我试图定义一个NewElement类,它继承自ElementTree.Element。目的是为它添加一些额外的方法,例如foo1()、foo2()等。
定义NewElement类: import xml.etree.ElementTree as 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
问题如下:
问题一 - 如何初始化NewElement的父元素?参考指南中提到ET.Element可以初始化,但似乎只有元素本身没有子元素。
问题二 - 其他ET的类/函数返回的是Element,但我期望得到NewElement。我需要将它们全部更改吗?
我是否在正确的方向上实现了我的目标?还是应该使用多重继承?或者使用mixin?如何操作?...
非常感谢您提供的极好建议。