2016-12-25 96 views
1

如果這是一個太基本的問題,我很抱歉,但我無法理解geopy正在投向我的簡單錯誤。geopy TypeError:geocode()缺少1所需的位置參數:'查詢'

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

相關問題