2013-09-03 3 views
0

Я пытаюсь импортировать и использовать модуль под названием «википедии» найдено здесь ...список всех атрибутов объекта

https://github.com/goldsmith/Wikipedia

я могу проверить все атрибуты с помощью функции реж.

>>> 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 не возвращает все это суб-атрибуты (!?)

>>> 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'] 

Я ожидал увидеть атрибуты, такие как заголовок, содержание здесь, в этом списке. Как узнать, какие атрибуты скрыты на странице?

+0

я нашел это, может помочь вам. Это аналогичный вопрос. http://stackoverflow.com/questions/191010/how-to-get-a-complete-list-of-objects-methods-and-attributes – Shashank

ответ

5

Потому что wikipedia.page - это функция. Я думаю, что вы хотите, это атрибуты объекта WikipediaPage.

>>> 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'] 

Типы этих двух разных.

>>> type(ny) 
<class 'wikipedia.wikipedia.WikipediaPage'> 
>>> type(wikipedia.page) 
<type 'function'> 
0

Вы можете также проверить __dict__ сво хороший лил Dunder

>>> class foo(object): 
...  def __init__(self,thing): 
...   self.thing= thing 
... 
>>> a = foo('pi') 
>>> a.__dict__ 
{'thing': 'pi'} 

или Варс, который делает то же самое:

>>> vars(a) 
{'thing': 'pi'} 
Смежные вопросы