Python方法dir()不会返回所有属性/方法
我有一段代码(来自Python 3中的Dive): 列表中缺少几个属性,尤其是“标记”、“文本”、“属性”等 为什么会这样?如何从对象中可靠地获取属性和方法的完整列表Python方法dir()不会返回所有属性/方法,python,attributes,dir,Python,Attributes,Dir,我有一段代码(来自Python 3中的Dive): 列表中缺少几个属性,尤其是“标记”、“文本”、“属性”等 为什么会这样?如何从对象中可靠地获取属性和方法的完整列表 感谢属性实际上定义为getattr内置函数接受的参数。由于用户可以重新实现\uuuu getattr\uuuu,突然允许任何类型的属性,因此没有可能的通用方法来生成该列表。dir函数返回\uuuuu dict\uuuu属性中的键,即如果未重新实现\uuuu getattr\uuuuu方法,则可访问的所有属性。根对象没有dict属性
感谢属性实际上定义为
getattr
内置函数接受的参数。由于用户可以重新实现\uuuu getattr\uuuu
,突然允许任何类型的属性,因此没有可能的通用方法来生成该列表。dir
函数返回\uuuuu dict\uuuu
属性中的键,即如果未重新实现\uuuu getattr\uuuuu
方法,则可访问的所有属性。根对象没有dict属性。这可能是本机C实现吗每个根
元素都有一个属性.attrib
,它是一个dict
。您可以这样访问它:print root.attrib
。
>>> import xml.etree.ElementTree as etree
>>> tree = etree.parse("feed.xml")
>>> root = tree.getroot()
>>> print(dir(root))
['__class__', '__copy__', '__deepcopy__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'extend', 'find', 'findall', 'findtext', 'get', 'getchildren', 'getiterator', 'insert', 'items', 'iter', 'iterfind', 'itertext', 'keys', 'makeelement', 'remove', 'set']
>>>