Kaydet (Commit) 2348afd3 authored tarafından Fred Drake's avatar Fred Drake

- 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
üst 16434b5e
...@@ -419,7 +419,8 @@ A class definition defines a class object (see section~\ref{types}): ...@@ -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 A class definition is an executable statement. It first evaluates the
inheritance list, if present. Each item in the inheritance list 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 in a new execution frame (see section~\ref{naming}), using a newly
created local namespace and the original global namespace. created local namespace and the original global namespace.
(Usually, the suite contains only function definitions.) When the (Usually, the suite contains only function definitions.) When the
...@@ -433,7 +434,7 @@ class object in the original local namespace. ...@@ -433,7 +434,7 @@ class object in the original local namespace.
\indexii{name}{binding} \indexii{name}{binding}
\indexii{execution}{frame} \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 are class variables; they are shared by all instances. To define
instance variables, they must be given a value in the instance variables, they must be given a value in the
\method{__init__()} method or in another method. Both class and \method{__init__()} method or in another method. Both class and
...@@ -441,3 +442,5 @@ instance variables are accessible through the notation ...@@ -441,3 +442,5 @@ instance variables are accessible through the notation
``\code{self.name}'', and an instance variable hides a class variable ``\code{self.name}'', and an instance variable hides a class variable
with the same name when accessed in this way. Class variables with with the same name when accessed in this way. Class variables with
immutable values can be used as defaults for instance variables. 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.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment