【发布时间】:2018-05-03 10:01:57
【问题描述】:
我正在尝试编写一个代码,允许人们输入坐标或位置,然后返回地点的名称或地点的坐标,这显然取决于用户首先选择输入的内容。我遇到以下错误的错误:NameError: name 'search_lan' is not defined 错误出现在 some_funcion() 下 url 变量
import json
import requests
def my_decorator(some_function):
def wrapper():
question = input("Would you like to input coordinates or location?")
if question == 'coordinates':
search_lan = input("Input latitude: ")
search_lon = input("Input longtitude: ")
elif question == 'location':
search_place = input("Input address: ")
else:
print("Wrong input")
some_function()
return search_place, search_lan, search_lon
return wrapper
api_key = 'api_key_here'
@my_decorator
def some_function():
url = requests.get('https://maps.googleapis.com/maps/api/geocode/json?
latlng={},{}&key={}'.format(search_lan,search_lon,api_key))
data = json.loads(url.content)
formatted_address = data['results'][0]['formatted_address']
print(formatted_address)
some_function()
【问题讨论】:
-
插入一个 search_lan=search_lon=search_place="" 作为 wrapper() 的第一行,这样无论输入如何,这些变量都有一个值。
标签: python python-3.x decorator nameerror