GNU Info

Info Node: (python2.1-ref.info)Class definitions

(python2.1-ref.info)Class definitions


Prev: Function definitions Up: Compound statements
Enter node , (file) or (file)node

Class definitions
=================

A class definition defines a class object (see section Note: standard
type hierarchy):

     classdef:       "class" classname [inheritance] ":" suite
     inheritance:    "(" [expression_list] ")"
     classname:      identifier

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.  The class's suite is then executed in a
new execution frame (see section Note: Code blocks), using a newly
created local namespace and the original global namespace.  (Usually,
the suite contains only function definitions.)  When the class's 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 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.


automatically generated by info2www version 1.2.2.9