From 3040eb4a060c1613021392df9f38681c92db2853 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Mon, 31 Oct 2005 19:22:43 +0000 Subject: [PATCH] Final tweaks: - fix the __str__, __unicode__ and __repr__ methods - some textual tweaks - add Python 3.0 to the transition plan --- pep-0352.txt | 56 +++++++++++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/pep-0352.txt b/pep-0352.txt index dddbbfa03..cd3bd729d 100644 --- a/pep-0352.txt +++ b/pep-0352.txt @@ -65,47 +65,46 @@ will cause the deprecation of the existing ``args`` attribute):: def __init__(self, *args): """Set 'message' and 'args' attribute""" - self.args = args - self.message = args[0] if args else '' + self.args = args + self.message = args[0] if args else '' def __str__(self): - """Return the str of 'message'""" - return str(self.message - if not self.args - else self.args) + """Return the str of 'message'""" + return str(self.message + if len(self.args) <= 1 + else self.args) def __unicode__(self): - """Return the unicode of 'message'""" - return unicode(self.message - if not self.args - else self.args) + """Return the unicode of 'message'""" + return unicode(self.message + if len(self.args) <= 1 + else self.args) def __repr__(self): - args_repr = (repr(self.message) - if not self.args - else "*%r" % self.args) - return "%s(%s)" % (self.__class__.__name__, args_repr) + if (len(self.args) <= 1): + return "%s(%r)" % (self.__class__.__name__, self.message) + return "%s%r" % (self.__class__.__name__, self.args) def __getitem__(self, index): """Index into arguments passed in during instantiation. - Provided for backwards-compatibility and will be - deprecated. + Provided for backwards-compatibility and will be + deprecated. - """ - return self.args[index] + """ + return self.args[index] -The ``message`` attribute will contain either the argument passed in -at instantiation of the object or the empty string. The attribute is -meant to act as a common location to store any extra information that -is to be passed along with the exception that goes beyond the location -of the exception within the exception hierarchy and the exception's -type. +The ``message`` attribute will contain either the first argument +passed in at instantiation of the object or the empty string if no +arguments were passed in. The attribute is meant to act as a common +location to store any extra information that is to be passed along +with the exception that goes beyond the location of the exception +within the exception hierarchy and the exception's type. No restriction is placed upon what may be passed in for ``messsage``. -This provides backwards-compatibility with how the argument passed -into Exception has no restrictions. +This provides backwards-compatibility with how the arguments passed +into Exception have no restrictions. The ``args`` attribute is deprecated. While allowing multiple arguments to be passed can be helpful, it is in no way essential. It @@ -214,11 +213,14 @@ specifically listed. - deprecate catching exceptions that do not inherit from BaseException - * Python 2.9 - deprecate ``args`` and ``__getitem__`` +* Python 3.0 + + - drop ``args`` and ``__getitem__`` + References ==========