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
+should evaluate to a class object or class type which allows
+subclassing. The class's suite is then executed
in a new execution frame (see section~\ref{naming}), using a newly
created local namespace and the original global namespace.
(Usually, the suite contains only function definitions.) When the
\indexii{name}{binding}
\indexii{execution}{frame}
-\strong{Programmer's note:} variables defined in the class definition
+\strong{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
\method{__init__()} method or in another method. Both class and
``\code{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.