Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #39064

Re: Struggling with program

Date 2013-02-17 20:49 -0700
From Michael Torrie <torriem@gmail.com>
Subject Re: Struggling with program
References <5d90a61d-f122-4dd4-8d79-c9909662b2bc@googlegroups.com>
Newsgroups comp.lang.python
Message-ID <mailman.1920.1361159410.2939.python-list@python.org> (permalink)

Show all headers | View raw


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

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Struggling  with program maiden129 <sengokubasarafever@gmail.com> - 2013-02-17 18:29 -0800
  Re: Struggling  with program Dave Angel <davea@davea.name> - 2013-02-17 21:49 -0500
  Re: Struggling  with program Michael Torrie <torriem@gmail.com> - 2013-02-17 20:49 -0700
  Re: Struggling with program Chris Angelico <rosuav@gmail.com> - 2013-02-18 17:49 +1100

csiph-web