Extending Python: exception handling

Greg Ewing greg.ewing at compaq.com
Fri Aug 27 00:31:00 EDT 1999

John Skaller wrote:
> The types of objects are NOT defined by Viper.
> They're defined in Python by a client module!
> So you can, for example, define any methods you like
> for any type. Here is the current definition of
> the type of an integer in the module 'py_types':
>         class PyIntType:
>                 def succ(x): return x + 1
>                 def pred(x): return x - 1

That sounds very interesting! I've been pondering
the problem of type/class unification in Python,
and your solution is an intriguing one. But is
it possible to do this:

  class MyInteger(PyIntType):
    ... customised behaviour ...

and have it inherit all the default behaviour
of built-in integers? If so, how exactly does it
work? For instance, can I do

  x = MyInteger(3)
  y = x + 5

and, assuming I haven't given MyInteger a custom
__add__ method, have it somehow invoke the built-in
integer addition code.


More information about the Python-list mailing list