繁体   English   中英

使用在另一个函数中接受参数的函数中的变量

[英]Use variable from function that takes argument in another function

所以我正在制作这个天气应用程序,因为天气数据的 API 只需要纬度和经度(afaik)我正在使用另一个 API 按城市名称获取它们。 所以GetGeo获取城市名称并返回纬度和经度,然后我需要在 GetWeather 函数中使用它,问题是我不知道如何在这个函数中访问它们,我找到的唯一方法是 lat, lon = GetGeo()但是这不起作用,因为 GetGeo 正在接受我从输入字段传入的参数。 我知道这可能不是最好的方法,但我是一个初学者,我已经在没有单独功能的情况下完成了这项工作,但我喜欢挑战自己并希望将所有功能分开:)

def GetGeo(cityName):
    locationKey = 'xxx'
    locationUrl = "https://eu1.locationiq.com/v1/search.php?key=" + locationKey + '&q=' + cityName + '&format=json'
    locationDataReq = requests.get(locationUrl)
    locationData = locationDataReq.json()
    lat = locationData[0]['lat']
    lon = locationData[0]['lon']

    return lat, lon

def GetWeather():
    lat, lon = GetGeo()
    darkSkyKey = 'xxx'
    darkSkyUrl = "https://api.darksky.net/forecast/" + darkSkyKey + "/" + lat + "," + lon + "?units=si"
    darkSkyDataReq = requests.get(darkSkyUrl)
    darkSkyData = darkSkyDataReq.json()
    label["text"] = darkSkyData
    print(darkSkyData)

怎么样:

def GetGeo(cityName):
    locationKey = 'xxx'
    locationUrl = "https://eu1.locationiq.com/v1/search.php?key=" + locationKey + '&q=' + cityName + '&format=json'
    locationDataReq = requests.get(locationUrl)
    locationData = locationDataReq.json()
    lat = locationData[0]['lat']
    lon = locationData[0]['lon']

    return lat, lon

def GetWeather(cityName):
    lat, lon = GetGeo(cityName)
    darkSkyKey = 'xxx'
    darkSkyUrl = "https://api.darksky.net/forecast/" + darkSkyKey + "/" + lat + "," + lon + "?units=si"
    darkSkyDataReq = requests.get(darkSkyUrl)
    darkSkyData = darkSkyDataReq.json()
    label["text"] = darkSkyData
    print(darkSkyData)


qCity=input('please type city: ')
GetWeather(qCity)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM