GNU Info

Info Node: (python2.1-tut.info)Instance Objects

(python2.1-tut.info)Instance Objects


Next: Method Objects Prev: Class Objects Up: A First Look at Classes
Enter node , (file) or (file)node

Instance Objects
----------------

Now what can we do with instance objects?  The only operations
understood by instance objects are attribute references.  There are two
kinds of valid attribute names.

The first I'll call _data attributes_.  These correspond to "instance
variables" in Smalltalk, and to "data members" in C++.  Data attributes
need not be declared; like local variables, they spring into existence
when they are first assigned to.  For example, if `x' is the instance
of `MyClass' created above, the following piece of code will print the
value `16', without leaving a trace:

     x.counter = 1
     while x.counter < 10:
         x.counter = x.counter * 2
     print x.counter
     del x.counter

The second kind of attribute references understood by instance objects
are _methods_.  A method is a function that "belongs to" an object.
(In Python, the term method is not unique to class instances: other
object types can have methods as well, e.g., list objects have methods
called append, insert, remove, sort, and so on.  However, below, we'll
use the term method exclusively to mean methods of class instance
objects, unless explicitly stated otherwise.)

Valid method names of an instance object depend on its class.  By
definition, all attributes of a class that are (user-defined) function
objects define corresponding methods of its instances.  So in our
example, `x.f' is a valid method reference, since `MyClass.f' is a
function, but `x.i' is not, since `MyClass.i' is not.  But `x.f' is not
the same thing as `MyClass.f' -- it is a _method object_, not a
function object.


automatically generated by info2www version 1.2.2.9