2015-06-21 4 views
2

Я использую геофизику и задаюсь вопросом, почему возникает ошибка.Вызов класса

Этот образец кода относится к образцу, указанному в github. Он работает, как упомянуто

from geopy.geocoders import Nominatim 

geolocator = Nominatim() 

location = geo.geocode("NY") 

print((location.latitude, location.longitude)) 

Каким образом приведен нижеприведенный код ошибки? В чем причина этого?

from geopy.geocoders import Nominatim as geo 

location = geo.geocode("NY") 

print((location.latitude, location.longitude)) 

Ошибка обеспечивается второй код:

Traceback (most recent call last): 
    File "C:/Users/Leb/Desktop/Python/so2.py", line 5, in <module> 
    location = geo.geocode("NY") 
TypeError: geocode() missing 1 required positional argument: 'query' 
+0

Я думаю, что это [ответ] (HTTP: // StackOverflow .com/a/17534363/3337714) может решить ваш запрос. – user3337714

+1

в первом примере кода вы создаете объект Номинация, затем во втором примере вы этого не сделаете, поэтому он ожидает два аргумента от вас 'self' и некоторую строку, которую я считаю. И вы проходите только один. – ThePavolC

+0

Спасибо, это объясняет причину довольно хорошо. – Leb

ответ

1

Вам необходимо создать экземпляр класса (создать объект)

from geopy.geocoders import Nominatim as geo 

location = geo().geocode("NY") 

print((location.latitude, location.longitude)) 
+0

@ ThePavolIC вы просто скопировали ответ SukritKalra из комментария? Интересно! – user3337714

+0

Не совсем, вы отправили ссылку на ответ. Думаю, я дал ответ. Но я не обновлял страницу во время написания комментария, поэтому я не видел других сообщений. – ThePavolC

+0

Это значит, что вопрос повторяется, и у него уже есть ответ. Вы предоставляете повторяющиеся решения вместо перенаправления ?. – user3337714

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