如何获取没有 __dict__ 的 Python 对象的属性列表?

发布于 2024-12-04 19:48:40 字数 760 浏览 1 评论 0原文

对于 xml.etree 的实例,您将如何执行此操作.cElementTree.Element

$ python
Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
>>> from xml.etree.cElementTree import Element 
>>> obj = Element('aaa')
>>> obj
<Element 'aaa' at 0x101bde270>
>>> dir(obj)
['__copy__', '__deepcopy__', '__reduce__', 'append', 'clear', 'extend', 'find', 'findall', 'findtext', 'get', 'getchildren', 'getiterator', 'insert', 'items', 'iter', 'iterfind', 'itertext', 'keys', 'makeelement', 'remove', 'set']
>>> obj.tag
'aaa'

How would you do this for an instance of xml.etree.cElementTree.Element?

$ python
Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
>>> from xml.etree.cElementTree import Element 
>>> obj = Element('aaa')
>>> obj
<Element 'aaa' at 0x101bde270>
>>> dir(obj)
['__copy__', '__deepcopy__', '__reduce__', 'append', 'clear', 'extend', 'find', 'findall', 'findtext', 'get', 'getchildren', 'getiterator', 'insert', 'items', 'iter', 'iterfind', 'itertext', 'keys', 'makeelement', 'remove', 'set']
>>> obj.tag
'aaa'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

写下不归期 2024-12-11 19:48:40

如果通过自定义 __getattr____getattribute__ 返回属性,则不尝试就无法知道是否会返回属性,并且在不尝试所有可能的名称的情况下无法获得完整列表。您可以通过 dir()

If attributes are returned via custom __getattr__ or __getattribute__, you cannot know whether an attribute will be returned without trying and you cannot get a full list without trying all possible names. You can get the list of static attributes via dir().

心安伴我暖 2024-12-11 19:48:40

xml.etree.ElementTree.Element 对象确实有一个__dict__

>>> from xml.etree.ElementTree import Element  
>>> obj = Element('aaa')
>>> obj.__dict__
{'attrib': {}, 'tag': 'aaa', '_children': []}

__dict__ 是当前定义的属性的字典。 dir() 调用 __dir__(),它可能会被覆盖。

The xml.etree.ElementTree.Element object does have a __dict__.

>>> from xml.etree.ElementTree import Element  
>>> obj = Element('aaa')
>>> obj.__dict__
{'attrib': {}, 'tag': 'aaa', '_children': []}

The __dict__ is the dictionary of currently defined attributes. dir() calls __dir__(), which may be overrided.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文