confusion between global names and instantiated object variable names

wanwan ericwan78 at
Fri Oct 14 22:40:11 CEST 2005

I'm trying to make a GUI, but for some of the instantiated object
variable names, the interpreter is looking at them as global names.
Here is an example of what I did:

class mygui:

	def __init__(self, root):

		self.menubar = Menu(root)

		# Game Menu
		self.menu1 = Menu(self.menubar, tearoff=0)
		self.menu1.add_command(label="Open File", command=donothing)
		self.menu1.add_command(label="Exit", command=root.quit)
		self.menubar.add_cascade(label="File", menu=self.menu1)

                # ignoring the rest of the program  ...

when I run my example, an error shows:
"NameError: global name'menubar' is not defined"

I wonder why it doesn't work.  Isn't that the way to define an object

Any response would be appreciated.

More information about the Python-list mailing list