[Python-Dev] Python 2.6 BaseException.message deprecation, really needed?
Brett Cannon
brett at python.org
Sun Jul 8 02:42:18 CEST 2007
On 7/7/07, Gustavo Carneiro <gjcarneiro at gmail.com> wrote:
> In PyGObject we want to use a 'message' attribute in an exception defined by
> us. The name 'message' comes from a C API, therefore we would like to keep
> it for easier mapping between C and Python APIs. Why does Python have to
> deprecate this attribute?
>
It's going away in Python 3.0. In retrospect the attribute was a
mistake thanks to its odd semantics to be backwards compatible in a
reasonable way. Plus its removal from the code base was nasty mostly
thanks to C-based exceptions.
> .../gobject/option.py:187: DeprecationWarning: BaseException.message has
> been deprecated as of Python 2.6
> gerror.message = str(error)
You can get around this easily enough with a subclass that uses a
property for message::
class gerror(Exception):
def _get_message(self, message): return self._message
def _set_message(self, message): self._message = message
message = property(_get_message, _set_message)
-Brett
More information about the Python-Dev
mailing list