summaryrefslogtreecommitdiffstats
path: root/Doc/whatsnew
diff options
context:
space:
mode:
authorAndrew M. Kuchling <amk@amk.ca>2001-12-21 04:39:11 (GMT)
committerAndrew M. Kuchling <amk@amk.ca>2001-12-21 04:39:11 (GMT)
commitbec5b362db9848e291219539a466b9e2c5fcbe25 (patch)
tree0f0bfa3fd08e1ec4249865573225b5a260fc2aac /Doc/whatsnew
parent5c7983113cd8b13bea6a5384d2a51f69d5a597c1 (diff)
downloadcpython-bec5b362db9848e291219539a466b9e2c5fcbe25.zip
cpython-bec5b362db9848e291219539a466b9e2c5fcbe25.tar.gz
cpython-bec5b362db9848e291219539a466b9e2c5fcbe25.tar.bz2
1.00 at last!
Describe super() very briefly A few minor reformattings and wording changes Set the release date (presumably tomorrow...)
Diffstat (limited to 'Doc/whatsnew')
-rw-r--r--Doc/whatsnew/whatsnew22.tex35
1 files changed, 29 insertions, 6 deletions
diff --git a/Doc/whatsnew/whatsnew22.tex b/Doc/whatsnew/whatsnew22.tex
index 5278827..cacb054 100644
--- a/Doc/whatsnew/whatsnew22.tex
+++ b/Doc/whatsnew/whatsnew22.tex
@@ -3,7 +3,7 @@
% $Id$
\title{What's New in Python 2.2}
-\release{0.10}
+\release{1.00}
\author{A.M. Kuchling}
\authoraddress{\email{akuchlin@mems-exchange.org}}
\begin{document}
@@ -11,8 +11,8 @@
\section{Introduction}
-This article explains the new features in Python 2.2.
-The final release of Python 2.2 is planned for December 2001.
+This article explains the new features in Python 2.2, released on
+December 21, 2001.
Python 2.2 can be thought of as the "cleanup release". There are some
features such as generators and iterators that are completely new, but
@@ -245,7 +245,7 @@ The \function{staticmethod()} function takes the function
stored in the class object. You might expect there to be special
syntax for creating such methods (\code{def static f()},
\code{defstatic f()}, or something like that) but no such syntax has
-been defined yet; that's been left for future versions.
+been defined yet; that's been left for future versions of Python.
More new features, such as slots and properties, are also implemented
as new kinds of descriptors, and it's not difficult to write a
@@ -260,10 +260,13 @@ from eiffel import eiffelmethod
class C(object):
def f(self, arg1, arg2):
# The actual function
+ ...
def pre_f(self):
# Check preconditions
+ ...
def post_f(self):
# Check postconditions
+ ...
f = eiffelmethod(f, pre_f, post_f)
\end{verbatim}
@@ -276,6 +279,7 @@ write \function{eiffelmethod()} or the ZODB or whatever, but most
users will just write code on top of the resulting libraries and
ignore the implementation details.
+
\subsection{Multiple Inheritance: The Diamond Rule}
Multiple inheritance has also been made more useful through changing
@@ -326,9 +330,28 @@ the above example, the list becomes [\class{D}, \class{B}, \class{C},
Following this rule, referring to \method{D.save()} will return
\method{C.save()}, which is the behaviour we're after. This lookup
-rule is the same as the one followed by Common Lisp.
+rule is the same as the one followed by Common Lisp. A new built-in
+function, \function{super()}, provides a way to get at a class's
+superclasses without having to reimplement Python's algorithm.
+The most commonly used form will be
+\function{super(\var{class}, \var{obj})}, which returns
+a bound superclass object (not the actual class object). This form
+will be used in methods to call a method in the superclass; for
+example, \class{D}'s \method{save()} method would look like this:
+
+\begin{verbatim}
+class D:
+ def save (self):
+ # Call superclass .save()
+ super(D, self).save()
+ # Save D's private information here
+ ...
+\end{verbatim}
-% XXX mention super()
+\function{super()} can also return unbound superclass objects
+when called as \function{super(\var{class})} or
+\function{super(\var{class1}, \var{class2})}, but this probably won't
+often be useful.
\subsection{Attribute Access}