Adding a method to an instance

Duncan Booth duncan at rcp.co.uk
Sat Mar 3 11:42:51 EST 2001


Bryan Mongeau <bryan at eevolved.com> wrote in <Sc0o6.361217$JT5.11613656
@news20.bellglobal.com>:

>Okay, based on these statements and referring to my previous example, I 
>should be able to do this:
>
>def newMethod(self):
>  print self.bar
>
>f.newMethod = newMethod
>
>Problem is:
>
>f.newMethod()
>TypeError: not enough arguments; expected 1, got 0 
>
>Understandably though, this works in this case:
>f.newMethod(f)

Try this:
    from new import instancemethod
    f = foo()
    f.newMethod = instancemethod(newMethod, f, foo)
    f.newMethod()
 



More information about the Python-list mailing list