On Sat, 2011-01-15 at 08:23 -0500, Dave Angel wrote: > On 01/-10/-28163 02:59 PM, Brett Murch wrote: > > Hi everyone, > > > > I'm just starting to learn Python and am starting by creating a text > > game but am having trouble with classes and funtions. I want to create a > > class or function where someone creates a charater and has a choice of > > their name or os. This is what I have so far; > > > > class Administrator(): > > def Skills(name,os): > > name = raw_input('What is your name') > > os = raw_input('What is your os') > > self.name = name > > self.os = os > > > > Skills(name,os) > > > > I keep getting a syntax error on calling it. any ideas on what I'm doing > > wrong? Should it not be a class and should I just define it as a > > function or what? > > > > Thank you in advance > > > > > > What previous experience in programming do you have? You say you're a > beginner in Python, but what other object orientation experience do you > have? > > I don't see any syntax error there. Looks to me like a NameError. When > you get errors, you should copy/paste the whole error into your message, > not just paraphrase it. Anyway, the NameError would occur since Skills > is not a valid global name, it's a method name within a class. And if > you got past that, then the same error would occur with the two > arguments. They're not defined anywhere either. > > You're defining a class called Administrator. That implies you're going > to have many Administrator instances, and presumably each will have > attributes called name and os. If that's true, we can start refining. > > The function to call to create an Administrator instance is called > Administrator(). When you call Administrator(), it will implicitly call > the __init__() method, not the Skills() method. So you probably want to > define such a method. > > Once such an instance is created, you might call the Skills() method to > change the original name and os for it. But Skills() has the wrong > method signature. The first parameter of such a method is 'self', and > you're missing that. And the other two parameters are never used. > > Perhaps you intended something like (untested): > > class Administrator(): > def __init__(self, name="unknown", os="nevernever"): > self.name = name > self.os = os > def change_skills(self): > name = raw_input('What is your new name') > os = raw_input('What is your new os') > self.name = name > self.os = os > > admin1 = Administrator("Harry", "Windoze") > admin1.change_skills() > > > DaveA > Yes thank you it is something like this that I was trying to do. I will have to test this. I don't have any programming experience but have read that Python is the best for beginners. I have a few books that I have been reading but sometimes need things explained a bit better. Thank you for your help on this.
BrettM _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor