Copyright (C) 2000-2012 |
GNU Info (python2.1-tut.info)Class ObjectsClass 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 method 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 in a known 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) automatically generated by info2www version 1.2.2.9 |