I have a function that makes use of several global variables: ########## Include struct
ABC = 1 DEF = 2 xyz = 0 # Other variables def do_stuff(in_str): hdr = struct.pack('@2BH',ABC|DEF,xyz,len(in_str)) newstr = hdr+in_str # rest of code snipped ########## When I run the program containing this code I get this error: >>>>>>>>> Traceback (most recent call last): File "sample.py", line 43, in ? ret_data = do_stuff(data) File "sample.py", line 17, in do_stuff hdr = struct.pack('@2BH', ABC|DEF,xyz,len(in_str)) UnboundLocalError: local variable 'xyz' referenced before assignment >>>>>>>>> The error goes away if I include a 'global' statement at the top of the function: ########## def do_stuff(in_str): global xyz hdr = struct.pack('@2BH',ABC|DEF,xyz,len(in_str)) ########## Why does the interpreter choke on xyz and not on ABC or DEF? Barry _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor