2016-12-25 2 views
1

Прошу прощения, если это слишком простой вопрос, однако я не могу понять простую ошибку, которую метафизика бросает мне.геофизика TypeError: geocode() отсутствует 1 обязательный позиционный аргумент: 'query'

In [78]: import geopy 

In [79]: geopy.geocoders.Nominatim.geocode("Mumbai") 
--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-79-2465009b9d72> in <module>() 
----> 1 geopy.geocoders.Nominatim.geocode("Mumbai") 

TypeError: geocode() missing 1 required positional argument: 'query' 

Однако следующие работы и я не получаю, как эти два подхода различны:

In [83]: from geopy.geocoders import Nominatim 

In [84]: geolocator = Nominatim() 

In [85]: geolocator.geocode("Mumbai") 
Out[85]: Location(Mumbai, Greater Bombay, Maharashtra, India, (18.9321862, 72.8308337, 0.0)) 

Насколько я могу видеть, как представляется, эквивалентны. Что мне не хватает?

ответ

1

Проблема в том, что в первом случае вы не создаете экземпляр класса Nominatum и пытаетесь вызвать geocode() instance method с помощью одного аргумента. Поскольку нет экземпляра, Mumbai используется как значение аргумента self, оставляя нужный аргумент query - следовательно, ошибка.

Оба варианта будут эквивалентны, если geocode() будет «методом класса», а не «методом экземпляра» (reference).

+0

О, глупо мне .. Спасибо :) – Peaceful

 Смежные вопросы

  • Нет связанных вопросов^_^