In the middle of your addName function you have defined another function that requires 'self' and you've got a default argument 'get=1';
def numberType(self, get = 1): You call this further down the function with the line; self.type = numberType(self.get) This should have been; self.type = numberType(self) I would suggest moving the numberType function from inside the addName function as follows; class MenuInput: def addName(self): print "To add a name, please input he following information: " name = raw_input("Name: ") number = raw_input("Number: ") get = int(raw_input("What type of number is this? (choose one): \n 1. Home:\n 2. Work:\n 3. Cell:\n : ")) type = self.numberType(get) enter = phoneentry() enter(name, number, returnType) def numberType(self, get): if get == 1: returnType = HOME elif get == 2: returnType = WORK elif get == 3: returnType = FAX return returnType If you use self in a function all functions can see the value without having to have it in the function definition. For example; class a: def a(self): self.get = 1 def b(self): print self.get >>> aa = a() >>> aa.a() >>> aa.b() 1 >>> Default arguments in the function definition work as follows: class a: def a(self): self.get = 1 def b(self, get="Using default argument"): print get >>> aa = a() >>> aa.a() >>> aa.b() "Using default argument" >>> aa.b(1) 1 >>> Cheers, Wes. On 14/11/2007, Bryan Magalski <[EMAIL PROTECTED]> wrote: > > Greetings all!! > > This is my first post and I am going to probably be vague at first, but, I > will try my best to be specific. I am a very GREEN scripter/programmer, so > please be as descriptive as possible. Ok, enough excuses, on with my > question! > > Here is my issue: > > I am trying to build a menu for the following script to make it more "user > friendly". Nothing fancy, just a simple add data and look up the entered > results. > > The problem is that when I run my modified version with this snippet (please > see attachment for original and my modified versions): > > [code] > class MenuInput: > > # ask user to input data and store to be passed to manageable variables. > def addName(self): > print "To add a name, please input he following information: > " > self.enter = phoneentry() > self.name = raw_input("Name: ") > self.number = raw_input("Number: ") > self.get = int(raw_input("What type of number is this? > (choose one): \n 1. Home:\n 2. Work:\n 3. Cell:\n : ")) > def numberType(self, get = 1): > if self.get == 1: > self.returnType = HOME > #return self.getType > elif self.gete == 2: > self.returnType = WORK > #return self.getType > elif self.get == 3: > self.returnType = FAX > #return self.getType > return self.returnType > > self.type = numberType(self.get) > self.enter(self.name, self.number, self.returnType) > > def display(self): > print "Enter a name to look up: (leave blank to exit)" > self.Name = str(raw_input("Name: ")) > print "%s has the following information: " % self.Name > if self.Name != "": > foo = phonedb() > for entry in foo.lookup(self.Name): > print '%-40s %s (%s)' % (entry.name, > entry.number, entry.showtype()) > print > [/code] > > when I instantiate and run it with: > > [code] > menu = MenuInput() > menu.addName() > [/code] > > and enter the information asked, I am given this runtime error: > > [error] > To add a name, please input he following information: > Name: Bryan > Number: 1234567 > What type of number is this? (choose one): > 1. Home: > 2. Work: > 3. Cell: > : 1 > Traceback (most recent call last): > File "examples\testpy\my_object_modified.py", line 101, > in <module> > menu.addName() > File "examples\testpy\my_object_modified.py", line 85, in > addName > self.type = numberType(self.get) > File "examples\testpy\my_object_modified.py", line 74, in > numberType > if self.get == 1: > AttributeError: 'int' object has no attribute 'get' > >>> > [/error] > > I "think" that this has something to do with passing the results or possibly > my functions are not properly calling (proper terminology?) each other. > > Now what/where am I wrong? As this is part of an object oriented > programming class, I wanted the menu constructed inherent to the class. > > Thank you in advance. --Bryan > ________________________________ > Be a better sports nut! Let your teams follow you with Yahoo Mobile. Try it > now. > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor > > > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor