How to use a class property to store function variables?
zyzhu2000 at gmail.com
Tue Apr 27 21:41:20 EDT 2010
On Apr 27, 6:43 pm, Chris Rebert <c... at rebertia.com> wrote:
> On Tue, Apr 27, 2010 at 4:36 PM, GZ <zyzhu2... at gmail.com> wrote:
> > I want to store a reference to a function into a class property.
> > So I am expecting that:
> > class A:
> > fn = lambda x: x
> > fn = A.fn
> > fn(1)
> > Traceback (most recent call last):
> > File "<string>", line 1, in <string>
> > TypeError: unbound method <lambda>() must be called with A instance as
> > first argument (got int instance instead)
> > The problem is that A.fn is treated as a bounded method. I really want
> > A.fn to be a variable that stores a reference to a function. Is there
> > any way to achieve this?
> Use the staticmethod() decorator:
> class A(object):
> def fn(x):
> return x
> #rest same as before
> --http://blog.rebertia.com- Hide quoted text -
> - Show quoted text -
I do not think it will help me. I am not trying to define a function
fn() in the class, but rather I want to make it a "function reference"
so that I can initialize it any way I like later.
For example, I want to be able to write the following:
A.fn = lambda x : x*x
f = A.fn
A.fn = lambda x : x^2
In other words, I want to make A.fn a reference to a function not
known to me at the time I define class A. I want to be able to
initialize it later.
More information about the Python-list