On 02/17/2013 07:29 PM, maiden129 wrote: > I'm trying to do this assignment and it not working, I don't > understand why... > > This is what I have to do: > > Write the definition of a class Player containing: An instance > variable name of type String , initialized to the empty String. An > instance variable score of type int , initialized to zero. A method > called set_name that has one parameter, whose value it assigns to > the instance variable name . A method called set_score that has one > parameter, whose value it assigns to the instance variable score . A > method called get_name that has no parameters and that returns the > value of the instance variable name . A method called get_score > that has no parameters and that returns the value of the instance > variable score . No constructor need be defined. can someone please > help me?
While no one here is willing to do homework for someone else we do like to help out however we can. As Dave alluded to, python "instance variables" are called attributes and typically are initialized in the the __init__(self, ...) method of the class. The "self" name, however, can be anything you want. For consistency, most python programmers use "self." So your assignment is a bit misleading when it says a constructor is not required, because if you want to initialize some instance attributes, it has to be done in a method, usually the constructor, which in Python is __init__. "Instance variables" always need to be referred to with an explicit self parameter. This is always the first parameter of any method declaration. Thus you would define things kind of like so: --------------------- from __future__ import print_function #in case python2 class MyClass(object): def __init__(self, var2): # create instance attributes and assign them values self.instance_variable = 5 self.instance_variable2 = var2 def print_values(self): print("instance_variable is {0}, and instance_variable2 is {1}".format(self.instance_variable, self.instance_variable2)) if __name__ == "__main__": c = MyClass(10); # this passes 10 to the __init__ method c.print_values() # note there is no self parameter passed; # python passes "c" for you implicitly. ---------------------- If you run this python snippet you get this as output: instance_variable is 5, and instance_variable2 is 10 -- http://mail.python.org/mailman/listinfo/python-list