geopy TypeError : geocode() missing 1 required positional argument: 'query'
geopy TypeError : geocode() missing 1 required positional argument: 'query'
如果这是一个太基本的问题,我很抱歉,但是我无法理解 geopy 向我抛出的一个简单错误。
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))
据我所知,两者似乎是等价的。我错过了什么?
问题是在第一种情况下,您没有创建 Nominatum
class 的实例并尝试使用单个参数调用 geocode()
instance method。由于没有实例,Mumbai
用作 self
位置参数值,未指定所需的 query
参数 - 因此出现错误。
如果 geocode()
是 "class method" 而不是 "instance method" (reference),那么这两个选项是等价的。
如果这是一个太基本的问题,我很抱歉,但是我无法理解 geopy 向我抛出的一个简单错误。
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))
据我所知,两者似乎是等价的。我错过了什么?
问题是在第一种情况下,您没有创建 Nominatum
class 的实例并尝试使用单个参数调用 geocode()
instance method。由于没有实例,Mumbai
用作 self
位置参数值,未指定所需的 query
参数 - 因此出现错误。
如果 geocode()
是 "class method" 而不是 "instance method" (reference),那么这两个选项是等价的。