- update to reflect that base classes can be class types as well as
"classic" class objects [partially fixes SF bug #453684] - add note that new-style classes can use descriptors to implement instance variables in different ways
This commit is contained in:
parent
16434b5e25
commit
2348afd3f8
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue