【发布时间】:2020-01-18 19:14:58
【问题描述】:
我有这样的情况:
import xml.etree.cElementTree as etree
class Universe(object):
def get_node(self, label, attribs):
return etree.Element(
type(label), label=label, **attribs)
class Planet(Universe):
def __init__(self, name, nom=0):
super(Planet, self).__init__()
self._name = name
self._nom = nom
def label(self):
return self._name
def no_of_moons(self):
return self._nom
class Earth(object):
def __init__(self):
self.life_support = True
self.presence_of_water = True
planet_earth = Planet(self, nom=1)
self.node = planet_earth.get_node(self, self.__dict__)
earth = Earth()
print earth.node
所以我得到这样的地球输出<Element <class 'Earth'> at 0x108fa1ed0>
但我想要的输出如下:<Element Earth(life_support=True, nom=True)>
现在我知道我可以覆盖 __repr__ 以得到类似上面的结果,但是 etree.Element 是 'builtin_function_or_method 类型的函数,我不知道如何输出对调试有用的东西。
【问题讨论】: