| Python Language Reference Manual by Guido van Rossum and Fred L. Drake, Jr. Paperback (6"x9"), 120 pages ISBN 0954161785 RRP £12.95 ($19.95) Sales of this book support the Python Software Foundation! Get a printed copy>>> |
7.7 Class definitions
A class definition defines a class object (see section 3.3):
classdef "class"classname[inheritance] ":"-
suite inheritance "(" [expression_list] ")"classnameidentifier
A class definition is an executable statement. It first evaluates the inheritance list, if present. Each item in the inheritance list should evaluate to a class object or class type which allows subclassing. The suite of the class is then executed in a new execution frame (see section 4.1), using a newly created local namespace and the original global namespace. (Usually, the suite contains only function definitions.) When the suite finishes execution, its execution frame is discarded but its local namespace is saved. A class object is then created using the inheritance list for the base classes and the saved local namespace for the attribute dictionary. The class name is bound to this class object in the original local namespace.
Programmer's note: Variables defined in the class definition
are class variables; they are shared by all instances. To define
instance variables, they must be given a value in the
__init__() method or in another method. Both class and
instance variables are accessible through the notation
"self.name", and an instance variable hides a class variable
with the same name when accessed in this way. Class variables with
immutable values can be used as defaults for instance variables.
For new-style classes, descriptors can be used to create instance
variables with different implementation details.
| ISBN 0954161785 | Python Language Reference Manual | See the print edition |