{Spam?} Re: bound vs unbound functions

Terry Reedy tjreedy at udel.edu
Sat Jan 29 20:40:07 EST 2005


"Michael Tobis" <mt at 3planes.com> wrote in message 
news:1107040729.535936.42230 at c13g2000cwb.googlegroups.com...

> I'd like to dynamically add a method to an instance at
> instantiation time.

No can do.  A method is function that is an attribute of a class, even if 
accessed via an instance.  A function added to an instance as an attribute 
of the instance remains a function.  It is instance-specific data that 
methods and other code can use, just like other instance data, for 
instance-specific effects.  Two common examples:

class composer:
  # skip obvious init
  def __call__(self, x): return self.outer(self.inner(x))

sincos = composer(math.sin, math.cos)
# yes, this can also be done with composer function with nested scope

class memoizer: # posted several times
  # skip init again
  def __call__(self,x):
     # return previously computed self.memodict[x] if it exists
     # or calculate, store, and return self.func(x)

\> PS - any idea how to get past google's stupid formatting these days? I
> thought they were supposed to like python, but they just ignore leading
> blanks.

Don't use google to post on clp.  Go to news.gmane.org instead.

Terry J. Reedy






More information about the Python-list mailing list