How to replace a method in an instance.

Steven W. Orr steveo at syslang.net
Fri Aug 24 12:26:13 EDT 2007


On Friday, Aug 24th 2007 at 09:12 -0700, quoth kyosohma at gmail.com:

=>On Aug 24, 11:02 am, "Steven W. Orr" <ste... at syslang.net> wrote:
=>> In the program below, I want this instance to end up calling repmeth
=>> whenever inst.m1 is called. As it is now, I get this error:
=>>
=>> Hello from init
=>> inst =  <__main__.CC instance at 0x402105ec>
=>> Traceback (most recent call last):
=>>    File "./foo9.py", line 17, in ?
=>>      inst.m1()
=>> TypeError: repmeth() takes exactly 1 argument (0 given)
=>>
=>> #! /usr/bin/python
=>> def repmeth( self ):
=>>      print "repmeth"
=>>
=>> class CC:
=>>      def __init__( self ):
=>>          self.m1 = repmeth
=>>          print 'Hello from init'
=>>
=>>      def m1 ( self ):
=>>          print "m1"
=>>
=>> inst = CC()
=>> inst.m1()

=>Remove "self" from repmeth as it's not required in a function, only in
=>functions that are defined within a class. Of course, a function in a
=>class is also know as a method.

Sorry. I need repmeth to have self passed to it automatically if it's 
called. I didn't mean to obfuscate the problem by not making a reference 
to self in repmeth. 

Am I being clear?

-- 
Time flies like the wind. Fruit flies like a banana. Stranger things have  .0.
happened but none stranger than this. Does your driver's license say Organ ..0
Donor?Black holes are where God divided by zero. Listen to me! We are all- 000
individuals! What if this weren't a hypothetical question?
steveo at syslang.net



More information about the Python-list mailing list