2016-10-28 2 views
0

이 코드 부분에서는 관심 영역을 부분 집합 화하는 함수를 정의합니다. 그러나 나중에 latselect 및 lonselect 변수를 다른 함수에서 사용하려고합니다. 그래서 난이 : 함수가 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; return latselect; return lonselect 

답변

1

되면, 그 값을 반환하고 실행하지 않습니다 이후 두 문장을 의미 즉시 종료됩니다. 이

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) 

같은 튜플로 세 개의 값을 반환 할 수 있으며,이 함수를 호출 할 때, 당신은 bdata의 값을 보유 할이

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

a 같은 세 가지 값을 풀 수 latselect이고, clonselect입니다.

관련 문제