Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 扩展元素和元素树的功能_Python_Xml.etree - Fatal编程技术网

Python 扩展元素和元素树的功能

Python 扩展元素和元素树的功能,python,xml.etree,Python,Xml.etree,我想从xml.etree扩展Element和ElementTree类的功能,并将它们与xml.etree.ElementTree.parse()一起使用 经过几次尝试,我成功地为这个问题创建了一个解决方案,但我想知道是否有更好的解决方案,或者这个解决方案是否存在任何隐患 FooElementTree.py import xml.etree from xml.etree.ElementTree import Element from xml.etree.ElementTree import Ele

我想从
xml.etree
扩展
Element
ElementTree
类的功能,并将它们与
xml.etree.ElementTree.parse()一起使用

经过几次尝试,我成功地为这个问题创建了一个解决方案,但我想知道是否有更好的解决方案,或者这个解决方案是否存在任何隐患

FooElementTree.py

import xml.etree
from xml.etree.ElementTree import Element
from xml.etree.ElementTree import ElementTree

class FooElement(Element):
    def __repr__(self):
        return "<FooElement %s at 0x%x>" % (repr(self.tag), id(self))

class FooElementTree(ElementTree):
    pass

xml.etree.ElementTree.Element = FooElement
xml.etree.ElementTree.ElementTree = FooElementTree
from xml.etree.ElementTree import parse
import xml.etree
从xml.etree.ElementTree导入元素
从xml.etree.ElementTree导入ElementTree
类元素(元素):
定义报告(自我):
返回“”%(repr(self.tag),id(self))
类FooElementTree(ElementTree):
通过
xml.etree.ElementTree.Element=FooElement
xml.etree.ElementTree.ElementTree=FooElementTree
从xml.etree.ElementTree导入解析
用法:

>>> import FooElementTree
>>> e = FooElementTree.parse('xml.cfg')
>>> e
<FooElementTree.FooElementTree object at 0x023AB650>
>>> r = e.getroot()
>>> r
<FooElement 'configuration' at 0x23c5470>
导入FooElementTree >>>e=FooElementTree.parse('xml.cfg') >>>e >>>r=e.getroot() >>>r
这就是热补丁的工作方式。但是请注意,在导入任何其他模块(或子模块)之前,也必须应用补丁,而其他模块也使用ElementTree。

这就是热补丁的工作方式。但请注意,在导入任何其他模块(或子模块)之前,也必须应用该修补程序(使用ElementTree)。

这仍然是python3的有效解决方案吗?这仍然是python3的有效解决方案吗?