【发布时间】:2014-04-10 05:06:46
【问题描述】:
我尝试定义一个继承 ElementTree.Element 的 NewElement 类。目标是添加更多方法,例如foo1(), foo2(), 给它。
定义 NewElement 类: 将 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 可以初始化,但似乎只有元素本身没有子元素。
Q2 - 其他 ET 的类/函数返回 Element,但我期待 NewElement。我需要全部更改吗?
我是否朝着正确的方向实现目标?还是改用多重继承?还是使用mixin?如何? ...
感谢您的出色投入。
【问题讨论】:
标签: python inheritance elementtree