2016-10-28 16 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) 

のように、タプルとして3つの値を返すことができますし、この関数を呼び出すとき、あなたは、bdataの値を保持します。この

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

aのような三つの値を展開することができますlatselectおよびcの値はlonselectである。

関連する問題