Adam W. wrote:
I thought I knew how classes worked, but this code sample is making my
second guess myself:

import threading

class nThread(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)

    def run(self,args):
        print self.name
        print self.args

pants = nThread(args=('fruit'),name='charlie')
pants.start()

Traceback (most recent call last):
  File "C:\Users\Adam\Desktop\PyTiVo\task_master.py", line 13, in
<module>
    pants = nThread(args=('fruit'),name='charlie')
TypeError: __init__() got an unexpected keyword argument 'args'

Shouldn't __init__ still handle these (as per
http://docs.python.org/library/threading.html#thread-objects ), even
if its subclassed?  I thought this was the whole idea of inheritance
and overdriving.

You've overridden the __init__ method to _not_ take any arguments, and explicitly call its parent constructor not passing anything. So it shouldn't be a wonder that it won't accept any arguments.

If you don't intend to override the constructor in the parent class, simply don't define it.

--
Erik Max Francis && m...@alcyone.com && http://www.alcyone.com/max/
 San Jose, CA, USA && 37 18 N 121 57 W && AIM/Y!M/Skype erikmaxfrancis
  I like young girls. Their stories are shorter.
   -- Thomas McGuane
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to