Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.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方法dir()不会返回所有属性/方法_Python_Attributes_Dir - Fatal编程技术网

Python方法dir()不会返回所有属性/方法

Python方法dir()不会返回所有属性/方法,python,attributes,dir,Python,Attributes,Dir,我有一段代码(来自Python 3中的Dive): 列表中缺少几个属性,尤其是“标记”、“文本”、“属性”等 为什么会这样?如何从对象中可靠地获取属性和方法的完整列表 感谢属性实际上定义为getattr内置函数接受的参数。由于用户可以重新实现\uuuu getattr\uuuu,突然允许任何类型的属性,因此没有可能的通用方法来生成该列表。dir函数返回\uuuuu dict\uuuu属性中的键,即如果未重新实现\uuuu getattr\uuuuu方法,则可访问的所有属性。根对象没有dict属性

我有一段代码(来自Python 3中的Dive):

列表中缺少几个属性,尤其是“标记”、“文本”、“属性”等

为什么会这样?如何从对象中可靠地获取属性和方法的完整列表


感谢

属性实际上定义为
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']
>>>