Etrade Griffiths wrote: > Hi > > I have a series of python programs that plot stuff using PYX. Common to > these is the need to read in a list of (well) locations in (X,Y) coords so > I put that code in a separate module called shared_funcs.py. The coords > are stored in dictionaries which I want to use later in the "main" program > - every time I find a well with data, I can get the well's (x,y) coords by > looking up the well name in the dictionary.
You don't need a global variable in shared_funcs.get_xy_data() at all. It is reading a file and creating two dicts. I would write it to create and return the dicts. Then you can save them where you like in the caller. Also, I would use one dict whose values are (x, y) pairs, rather than two parallel dicts. Then your code looks like this: === shared_funcs.py === def get_xy_data(): D = {} in_file=open("well_xy.txt","r") for line in in_file L=line.split() well=L[0] x=L[1] y=L[2] D[well]=(x, y) in_file.close() return D === main.py === import shared_funcs D = shared_funcs.get_xy_data() though I suggest a more descriptive name than D... If there are other related bits of data or operations other than lookup, that might point to using a class to wrap the dict, the other data and operations. Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor