2016-10-28 25 views
0

在这部分代码中,我定义了一个函数来对感兴趣的区域进行子集。但是,我想在后面的另一个函数中使用变量latselect和lonselect。所以,我有:我如何评估一个局部变量函数?

def DatasetToSubset(file, LatUpbound, LatLowBound, LonUpBound, LonLowBound): 
    nc=netCDF4.Dataset(file) 
    lats=nc.variables['lat'][:]; lons=nc.variables['lon'][:] 
    latselect=np.logical_and(lats > LatLowBound, lats < LatUpBound)  
    lonselect=np.logical_and(lon > LonLowBound, lon < LonUpBound) 
    data=nc.variables['Runoff'][1000, latselect, lonselect] 
    return data; return latselect; return lonselect 

回答

1

一旦功能达到return声明,它返回值,并立即终止,这意味着随后的两个语句将不会执行。您可以返回三个值的元组,这样

def DatasetToSubset(file, LatUpbound, LatLowBound, LonUpBound, LonLowBound): 
    nc=netCDF4.Dataset(file) 
    lats=nc.variables['lat'][:]; lons=nc.variables['lon'][:] 
    latselect=np.logical_and(lats > LatLowBound, lats < LatUpBound)  
    lonselect=np.logical_and(lon > LonLowBound, lon < LonUpBound) 
    data=nc.variables['Runoff'][1000, latselect, lonselect] 
    return (data, latselect, lonselect) 

,当你调用这个函数,你可以解开三个值这样

(a, b, c) = DatasetToSubset(...) 

a将持有的data值,blatselectclonselect