首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列出对象的所有属性

列出对象的所有属性
EN

Stack Overflow用户
提问于 2013-09-03 04:48:21
回答 2查看 832关注 0票数 0

我试着导入和使用一个叫做“维基百科”的模块。

https://github.com/goldsmith/Wikipedia

我可以使用dir函数检查所有属性。

代码语言:javascript
复制
>>> dir(wikipedia)
['BeautifulSoup', 'DisambiguationError', 'PageError', 'RedirectError', 'WikipediaPage', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'cache', 'donate', 'exceptions', 'page', 'random', 'requests', 'search', 'suggest', 'summary', 'util', 'wikipedia']

但是wikipedia.page不返回它的所有子属性(!?)

代码语言:javascript
复制
>>> dir(wikipedia.page)
['__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__doc__', '__format__', '__get__', '__getattribute__', '__globals__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'func_closure', 'func_code', 'func_defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name']

我希望在这个列表中看到像标题、内容这样的属性。我如何知道隐藏在“页面”中的属性是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-03 05:22:52

因为wikipedia.page是一个函数。我认为您想要的是WikipediaPage对象的属性。

代码语言:javascript
复制
>>> import wikipedia
>>> ny = wikipedia.page('New York')
>>> dir(ny)
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'content', 'html', 'images', 'links', 'load', 'original_title', 'pageid', 'references', 'summary', 'title', 'url']

这两种类型是不同的。

代码语言:javascript
复制
>>> type(ny)
<class 'wikipedia.wikipedia.WikipediaPage'>
>>> type(wikipedia.page)
<type 'function'>
票数 5
EN

Stack Overflow用户

发布于 2013-09-03 17:42:28

你可能还想看看__dict__,它是一个很好的lil。

代码语言:javascript
复制
>>> class foo(object):
...     def __init__(self,thing):
...         self.thing= thing
...
>>> a = foo('pi')
>>> a.__dict__
{'thing': 'pi'}

或者做同样事情的vars:

代码语言:javascript
复制
>>> vars(a)
{'thing': 'pi'}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18584263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档