簡體   English   中英

Python引發異常並返回默認值

[英]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裝飾器將自動重試異常。 在這里,我想提出一個例外,以表明所給的lonlat無效,同時將countrystate都返回為“未知”。 我想知道在Python中是否有辦法。

否。在任何給定的調用中,函數可以引發異常,也可以返回值。 它不能同時做到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM