Hi,

environment: Python 2.4, GNU/Linux, kernel 2.6.12.2

having subclassed 'Exception' I'm trying to call the initialiser
__init__(...) of the superclass Exception with 'super(..).__init__(..)' .
However, trying to do so results in a
'TypeError: super() argument 1 must be type, not classobj'.

Now, if I use 'Exception.__init__(..)' instad of super(..)... ,everything
works just as one would expect.

Why does 'super(..).__init__(..)' fail?


thank you for any suggestions
chriss



Here is some example code to illustrate the point:


class WorkingException(Exception):

    def __init__(self, message):
        # works as I would expect
        Exception.__init__(self, message)
        

class BrokenException(Exception):

    def __init__(self, message):
        # fails with a typeError
        super(BrokenException, self).__init__(self, message)

        
# --------- case 1 ---------
try:
    raise WorkingException("Hello WorkingException")

except WorkingException, e:
    print e

    
# --------- case 3 ---------
 
try:
    raise BrokenException("Hello BrokenException")


except BrokenException, e:
    print e



-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to