首页 > 解决方案 > 如何访问存储在全局变量中的值

问题描述

在下面的代码中,我将值分配给声明的全局变量,如下所示:

@app.route("/getDistance/<string:startAndEndCoords>", methods=['GET'] )
def getDistance(startAndEndCoords):
    global gpsCoordinates
    gpsCoordinates = startAndEndCoords
    

我想使用在下面发布的 getter 方法中全局声明的变量:

def getStartLng():
    return getGpsCoordinatesAsArray(gpsCoordinates)[0]
    
def getStartLat():
    return getGpsCoordinatesAsArray(gpsCoordinates)[1]
    
def getEndtLng():
    return getGpsCoordinatesAsArray(gpsCoordinates)[2]
    
def getEndLat():
    return getGpsCoordinatesAsArray(gpsCoordinates)[3]
    

当我运行代码时,我得到以下信息

4564242.9 km from Lng1:, Lat1: to Lng2:, Lat2:

空值。

请让我知道如何访问全局变量 代码中的值:

def getStartLng():
    return getGpsCoordinatesAsArray(gpsCoordinates)[0]
    
def getStartLat():
    return getGpsCoordinatesAsArray(gpsCoordinates)[1]
    
def getEndtLng():
    return getGpsCoordinatesAsArray(gpsCoordinates)[2]
    
def getEndLat():
    return getGpsCoordinatesAsArray(gpsCoordinates)[3]

def getBaseURL(gpsCoordinates):
    gpsCoordinatesAsArray = getGpsCoordinatesAsArray(gpsCoordinates)
    startLng, startLat, endLng, endLat = gpsCoordinatesAsArray
    baseURL = config['EndPoint']['https'] + config['EndPoint']['url'] + config['EndPoint']['api_key'] + "&start=" + startLng + "," + startLat+ "&end=" + endLng + "," + endLat
    print("baseURL: %s"%(baseURL))
    return baseURL
@app.route("/getDistance/<string:startAndEndCoords>", methods=['GET'] )
def getDistance(startAndEndCoords):
    global gpsCoordinates
    gpsCoordinates = startAndEndCoords
    distance = 'distance could not be fetched.please enter four comma separated values and observe the order in which the coordinates must follow startLongitude,startLatitude,endLongitude,endLatitude'
    isCohesiveData = checkDataCohesion(gpsCoordinates)
    if (isCohesiveData):
        print("data is cohesive")
        data = fetchDataForURL(getBaseURL(gpsCoordinates))
        distance = fetchJSONForDistance(data)
    else:
        print("data is not cohesive")
        return distance  
    
    gpsCoordinatesAsArray = getGpsCoordinatesAsArray(gpsCoordinates)
    return distance + ' km from Lng1:%s, Lat1:%s to Lng2:%s, Lat2:%s'%(getStartLng, getStartLat, getEndtLng, getEndLat)

标签: pythonarrayspython-3.xglobal-variables

解决方案


推荐阅读