I am having a problem getting around this variable namespace thing. Consider these code bits
File a.py from Tkinter import * import a1 def doAgain(): x = a1.Net() x.show("Again!") root = Tk() root.title("test") f = Frame(root,bg="Yellow") l = Button(root,text="window 1",command=doAgain) f.grid() l.grid() a = 5 x = a1.Net() x.show("window 2") if __name__ == "__main__": root.mainloop() File a1.py from Tkinter import * class Net: def __init__(self): self.window = Toplevel() def show(self,t): self.l = Label(self.window,text=t) self.l.grid() button = Button(self.window, text="Again") button.bind("<Button-1>", self.Again) button2 = Button(self.window, text="Dismiss") button2.bind("<Button-1>", self.hide) button.grid() button2.grid() def Again(self,event): x = Net() x.show(a) def hide(self,event): self.window.destroy() When I run a.py, it imports a1.py and click on the Again button, I get the error Exception in Tkinter callback Traceback (most recent call last): File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk/Tkinter.py", line 1410, in __call__ return self.func(*args) File "/Volumes/Development/py/a1.py", line 17, in Again x.show(a) NameError: global name 'a' is not defined I believe this is the expected behavior. so my question is this -- how do I tell the code in a1.py about the variable a, which exists in a.py? Do I have to pass it as part of the function call, or what? using global a in a1.py doesn't change anything. since I am using SQLite for the disk database, I was thinking I could keep all the "global" variables in an in memory database and just access them when I need to, but other ideas are welcome. Thanks, Chris -- http://mail.python.org/mailman/listinfo/python-list