[Tutor] Assessing local variable outside function
Peter Otten
__peter__ at web.de
Fri Oct 28 04:22:44 EDT 2016
nils wagenaar wrote:
> Hello,
>
>
> Could i use a variable defined in a function in another function?
>
> I have now:
>
>
> 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
It doesn't help that you put all return statements on the same line, only
the first
return data
is executed; the other two are unreachable code.
> So, i want to use latselect and lonselect in a different function where i
> interpolate for the subsetted area.
In Python while you can return only one value you can easily combine
multiple values into one tuple. Instead of
> return data; return latselect; return lonselect
write
return data, latselect, lonselect
When you call the function you can either access the parts of the tuple with
their respective index
result = DatasetToSubset(...)
lat = result[1]
or use a language feature called "unpacking" to break the tuple into the
individual values:
data, lat, lon = DatasetToSubset(...)
More information about the Tutor
mailing list