How do can you make a variable static?

H. P. Friedrichs " HPeter.Friedrichs" at alliedsignal.com
Thu Jun 24 18:16:19 EDT 1999


Hello:
I hope somebody can help me with this problem (python newbie, <<week)

I have a dictionary called SymHanDict. It's entries are comprised of a
"symbol handle" number (the key), and a numeric value. A function foo()
resides in another module. When called, it's supposed to look at
SymHanDict, and create a new entry comprised of an incremented handle
number (the highest handle number in the existing dictionary plus one),
and a default data value of 0.

I keep getting name errors on SymHanDict, even though I've specified it
as global. I've seen the FAQ and thumbed through a borrowed copy of
Programming Python (M. Lutz). I don't see anything that allows me to
declare variables as static, and I don't understand the explanation of
globals in python.

Can anyone clarify? What's the workaround? For a variety of reasons I
won't go into right now, I really can't pass the dictionary as an
argument.

Thanks

Pete


**** the following contained in main module test.py
*****************************
from foo import foo

SymHanDict={0:0}

foo()                            #each call to foo() should add items to
the dictionary
foo()
foo()

*** the following contained in module foo.py ************************
def foo():
    global SymHanDict

    handlelist=SymHanDict.keys()          # get the list of existing
handles
    handlelist.sort()                     # sort the list, then

    handle=handlelist[len(handlelist)-1]        # find largest handle
    handle=handle+1                         # generate new handle, and
    SymHanDict[handle]=0                  # add it to dictionary along
with
                                          # a default value of zero.

    print SymHanDict




--

-----------------------------------------------
| The opinions expressed here are my own,     |
| and not necessarily those of my employer.   |
-----------------------------------------------






More information about the Python-list mailing list