How to use a class property to store function variables?

Chris Rebert clp2 at
Tue Apr 27 19:43:56 EDT 2010

On Tue, Apr 27, 2010 at 4:36 PM, GZ <zyzhu2000 at> 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


More information about the Python-list mailing list