[英]Python Raise Exception and Return Default Value
我正在使用geopy的GoogleV3編寫一個函數,以從經度和緯度獲取地址:
from retrying import retry
@retry(wait_exponential_multiplier=500, wait_exponential_max=4000, stop_max_attempt_number=5)
def get_address(lat, lon):
state = 'unknown'
country = 'unknown'
geo = GoogleV3(api_key='my-secret-api-key')
location = geo.reverse((lat, lon), timeout=10, exactly_one=True)
if location == None:
raise ValueError('a valid location for %d, %d is not found' % (lat, lon))
for item in location.raw['address_components']:
if u'administrative_area_level_1' in item[u'types']:
state = item['short_name']
if u'country' in item[u'types']:
country = item['long_name']
return state, country
這里的retrying
裝飾器將自動重試異常。 在這里,我想提出一個例外,以表明所給的lon
和lat
無效,同時將country
和state
都返回為“未知”。 我想知道在Python中是否有辦法。
否。在任何給定的調用中,函數可以引發異常,也可以返回值。 它不能同時做到。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.