|
11.3.3 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. For example, 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.
|
|