diff --git a/Doc/ref/ref7.tex b/Doc/ref/ref7.tex index 346dce07c28..4770dc9d476 100644 --- a/Doc/ref/ref7.tex +++ b/Doc/ref/ref7.tex @@ -419,7 +419,8 @@ A class definition defines a class object (see section~\ref{types}): 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 @@ -433,7 +434,7 @@ class object in the original local namespace. \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 @@ -441,3 +442,5 @@ instance variables are accessible through the notation ``\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.