| An Introduction to Python by Guido van Rossum and Fred L. Drake, Jr. Paperback (6"x9"), 124 pages ISBN 0954161769 RRP £12.95 ($19.95) Sales of this book support the Python Software Foundation! Get a printed copy>>> |
9.3.2 Class Objects
Class objects support two kinds of operations: attribute references and instantiation.
Attribute references use the standard syntax used for all
attribute references in Python: obj.name. Valid attribute
names are all the names that were in the class's namespace when the
class object was created. So, if the class definition looked like
this:
class MyClass:
"A simple example class"
i = 12345
def f(self):
return 'hello world'
then MyClass.i and MyClass.f are valid attribute
references, returning an integer and a function object, respectively.
Class attributes can also be assigned to, so you can change the value
of MyClass.i by assignment. __doc__ is also a valid
attribute, returning the docstring belonging to the class: "A simple example class".
Class instantiation uses function notation. Just pretend that the class object is a parameterless function that returns a new instance of the class. For example (assuming the above class):
x = MyClass()
creates a new instance of the class and assigns this object to
the local variable x.
The instantiation operation ("calling" a class object) creates an
empty object. Many classes like to create objects with instances
customized to a specific initial state.
Therefore a class may define a special method named
__init__(), like this:
def __init__(self):
self.data = []
When a class defines an __init__() method, class
instantiation automatically invokes __init__() for the
newly-created class instance. So in this example, a new, initialized
instance can be obtained by:
x = MyClass()
Of course, the __init__() method may have arguments for
greater flexibility. In that case, arguments given to the class
instantiation operator are passed on to __init__(). For
example,
>>> class Complex:
... def __init__(self, realpart, imagpart):
... self.r = realpart
... self.i = imagpart
...
>>> x = Complex(3.0, -4.5)
>>> x.r, x.i
(3.0, -4.5)
| ISBN 0954161769 | An Introduction to Python | See the print edition |